https://github.com/musq/github-available-usernames
Find out available usernames on GitHub
https://github.com/musq/github-available-usernames
dictionary github pronounceable username-checker
Last synced: 4 months ago
JSON representation
Find out available usernames on GitHub
- Host: GitHub
- URL: https://github.com/musq/github-available-usernames
- Owner: musq
- License: gpl-3.0
- Created: 2019-05-22T20:28:21.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T07:44:01.000Z (over 3 years ago)
- Last Synced: 2026-02-01T15:18:33.050Z (5 months ago)
- Topics: dictionary, github, pronounceable, username-checker
- Language: Python
- Homepage: https://musq.github.io/posts/github-usernames
- Size: 40 KB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Github available usernames
Find out available usernames in Github.
It works by iterating over a list of words which fit the specified parameters and pinging Github to check if the profile page of these words (usernames) exist. If it does not exist, this word is stored as an available username.
### Requirements
- python 3.6+
- pipenv
### Installation
1. Clone this repository and `cd` into it
1. Create a virtualenv using `python3 -m venv vendor`
1. Activate the virtualenv using `source vendor/bin/activate`
1. Run `pipenv install` to install dependencies
1. Run `python main.py` to begin extraction
### Issues
If you face issues with *nltk*, please get a shell of your virtualenv's python by typing `python` and then follow these ---
```
import nltk
nltk.download('words')
nltk.download('cumdict')
```
You'll need to do this only once.
### Configuration
There are two modes to choose candidates for potential usernames. Check the `main()` function in `main.py`.
1. **Dictionary** *(default)* --- Use words from a dictionary
1. **Pronounceable** --- Use random pronounceable words with a threshold on syllables. Use following parameters:
- USERNAME_MAX_SYLLABLE_COUNT - Maximum syllables count
- MAX_DESIRED_RESULTS - Number of usernames to scout
Other generic parameters ---
- USERNAME_MAX_LENGTH - Length of desired username
- SLEEP_INTERVAL - Break after each Github ping. (Keep this greater than 200ms to avoid being blacklisted by Github)
- GITHUB_AVAILABLE_USERNAMES_FILE - File name to store the available usernames
- GITHUB_REQUESTS_FILE - File name to store all tried words
### Optimizations
- Check if the current word has already been pinged. If yes, do not ping it again.