https://github.com/csurfer/gitsuggest
A tool to suggest github repositories based on the repositories you have shown interest in.
https://github.com/csurfer/gitsuggest
github lda-model nltk repository suggestion-engine
Last synced: about 1 month ago
JSON representation
A tool to suggest github repositories based on the repositories you have shown interest in.
- Host: GitHub
- URL: https://github.com/csurfer/gitsuggest
- Owner: csurfer
- License: mit
- Created: 2017-05-26T01:03:46.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-06-01T21:26:49.000Z (almost 4 years ago)
- Last Synced: 2024-10-13T11:26:19.659Z (7 months ago)
- Topics: github, lda-model, nltk, repository, suggestion-engine
- Language: Python
- Homepage: http://www.gitsuggest.com
- Size: 97.7 KB
- Stars: 657
- Watchers: 12
- Forks: 19
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.rst
- License: LICENSE
Awesome Lists containing this project
- AwesomeCppGameDev - gitsuggest
README
# gitsuggest
[](https://pypi.python.org/pypi/gitsuggest)
[](https://pypi.python.org/pypi/gitsuggest)
[](https://raw.githubusercontent.com/csurfer/gitsuggest/master/LICENSE)
[](https://saythanks.io/to/csurfer)A tool to suggest github repositories based on the repositories you have shown interest in.

## Whats happening here?
> Programs must be written for people to read, and only incidentally for machines to execute. ~ Hal Abelson
One quick way to become a better programmer is by reading code written by smart people. Github makes finding such code/repositories easy. At the end of the day we all are interested in our own specific areas and we express this interest by “starring” repositories and/or “following” people who contribute to such repositories.
This is a tool which uses the repositories you have starred and the repositories that people you follow have starred to help you discover repositories which might be of interest to you.
## How fast is it?
It totally depends on the number of repositories you have, and people you follow have starred. Based on this number it might take anywhere between a minute to two minutes to give you the list of suggested repositories.
## Setup
### Using pip
```bash
pip install gitsuggest
```### Directly from the repository
```bash
git clone --recursive https://github.com/csurfer/gitsuggest.git
python gitsuggest/setup.py install
```## Post setup
If you see a stopwords error, it means that you do not have the corpus stopwords downloaded from NLTK. You can download it using command below.
```bash
python -c "import nltk; nltk.download('stopwords')"
```## Usage
### As a command
```bash
# For help with usage
gitsuggest --help# With just username in command to provide password secretly
gitsuggest# Password can be skipped which means you chose to go the unauthenticated
# way which may raise RateLimitExceeded exception.To skip password enter
# nothing when prompted for password and press enter.# NOTE: Using it this way generates a static html page with the search
# results. This gets opened it in your default browser.# To fetch better suggestions at the cost of extra time and calls
gitsuggest --deep_dive# Without the --deep_dive flag we limit the suggestion to consider only
# the repositories you have starred. With --deep_dive we also consider
# repositories which people you follow have starred.
```### As a module
```python
from gitsuggest import GitSuggest# To use with username password combination
gs = GitSuggest(username=, password=)# To use with access_token
gs = GitSuggest(token=access_token)# To use without authenticating
gs = GitSuggest(username=)# To use with deep dive flag
gs = GitSuggest(username=, password=, token=None, deep_dive=True)
gs = GitSuggest(token=access_token, deep_dive=True)
gs = GitSuggest(username=, deep_dive=True)# To get an iterator over suggested repositories.
gs.get_suggested_repositories()
```## FAQ
**Why do we need to authenticate (with password) to get suggestions, I browse gihub all the time without authenticating?**
You don’t. From v0.0.4 you can choose to procure suggestions without actually authenticating with a password, but know that **access to github through API is highly rate limited** and it is much lesser for unauthenticated requests when compared to authenticated ones. More details about [ratelimits](https://developer.github.com/v3/search/#rate-limit).
What this means is that when used without a password (unauthenticated) it may fail with RateLimitExceeded exception.
## Contributing
### Bug Reports and Feature Requests
Please use [issue tracker](https://github.com/csurfer/gitsuggest/issues) for reporting bugs or feature requests.
### Development
Pull requests are most welcome.
### Buy the developer a cup of coffee!
If you found the utility helpful you can buy me a cup of coffee using
[](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=3BSBW7D45C4YN&lc=US¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted)