Home
Softono

Github Stars Backup

Open source MIT Python
150
Stars
6
Forks
0
Issues
1
Watchers
3 years
Last Commit

 About Github Stars Backup

[mirror] Backup a list of github starred repositories for the specified user.

Platforms

Web Self-hosted

Languages

Python

Need Help Installing Github Stars Backup?

We provide expert installation service for this software. Our team will install, configure, and secure Github Stars Backup on your server. plans start at just $30.

Github Stars Backup

View on GitHub

github-stars-backup

Backup a list of github starred repositories for the specified user.

Python version

  • The python version requires that you generate a Personal Access Token using one of the following methods:
    • Create a "classic" token with the scope read:user.
    • Or, use a new "fine-grained token" with the Account Permissions -> Starring -> read-only permission.
  • The token must be exported to the GITHUB_ACCESS_TOKEN environment variable
  • It outputs a JSON file containing the name, description, url, homepage, language number of open issues/stars of each starred repository
  • The rate limit for authenticated API requests is 5000 requests/hour.

Installation

# install requirements in a virtualenv
python3 -m venv ~/.local/venv
source ~/.local/venv/bin/activate
pip3 install PyGithub

# clone the repository
git clone https://gitlab.com/nodiscc/github-stars-backup
cd github-stars-backup

Usage

# all commands must be run from the virtualenv
source ~/.local/venv/bin/activate

./github-stars-backup.py --help
  USAGE: ./github-stars-backup.py USERNAME OUTPUT_FILE
  GITHUB_ACCESS_TOKEN must be declared in the environment, see https://github.com/settings/tokens

export GITHUB_ACCESS_TOKEN=aaaabbbbccccddddeeefffggghhhiijjj
./github-stars-backup.py nodiscc github-stars-backup.json
$ cat github-stars-backup.json
{
  "ayyi/samplecat": {
    "name": "ayyi/samplecat",
    "description": "SampleCat is a a program for cataloguing and auditioning audio samples.",
    "url": "https://github.com/ayyi/samplecat",
    "homepage": "http://ayyi.github.io/samplecat/",
    "language": "C",
    "open_issues": 15,
    "stars": 33
  },
  ...
}

Bash version (legacy)

  • The (unmaintained) bash version does not require API authentication.
  • It doesn't handle errors well, output will be wrong when the API rate limit is exceeded. The rate limit for unauthenticated requests is only 60 requests/hour.
  • An intermediary JSON file containing the full API request results will be stored at github-stars.json
  • The final output is a plain text list of starred repositories
USAGE: ./github-stars-backup.sh USERNAME OUTPUT_FILE

$ ./github-stars-backup.sh nodiscc github-stars.txt
$ cat github-stars.txt
https://github.com/eliasgranderubio/dagda
https://github.com/banyanops/collector
https://github.com/building5/ansible-vault-tools
...

License

MIT