Skip to main content

gitsuggest

pypiv pyv Licence Thanks

A tool to suggest github repositories based on the repositories you have shown interest in.

Demo

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

pip install gitsuggest

Directly from the repository

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.

python -c "import nltk; nltk.download('stopwords')"

Usage

As a command

# For help with usage
gitsuggest --help

# With just username in command to provide password secretly
gitsuggest <username>

# 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 <username> --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

from gitsuggest import GitSuggest

# To use with username password combination
gs = GitSuggest(username=<username>, password=<password>)

# To use with access_token
gs = GitSuggest(token=access_token)

# To use without authenticating
gs = GitSuggest(username=<username>)

# To use with deep dive flag
gs = GitSuggest(username=<username>, password=<password>, token=None, deep_dive=True)
gs = GitSuggest(token=access_token, deep_dive=True)
gs = GitSuggest(username=<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.

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 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

Donate

Metadata

Release files for gitsuggest 0.0.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gitsuggest 0.0.13
File Size Uploaded Provenance
gitsuggest-0.0.13.tar.gz 25.5 kB Without provenance Details

Release files / gitsuggest-0.0.13.tar.gz

Download URL gitsuggest-0.0.13.tar.gz
Size 25.5 kB
Tags Source
SHA-256 checksum
How to use checksums
71dcff2bb5328c7437c3831ba144fa9cba015f6b25fe1efc42b299284bb3ab33
BLAKE2b-256 checksum
How to use checksums
ca59b403e1c159ce54a2205159d849c88272d7636304a3c7d4b50e63945c11fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for gitsuggest 0.0.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page