Idea/original implementation by Chris Lockfort (clockfort@csh.rit.edu) (Github username: Clockfort)
Python version by Anthony Gargiulo (anthony@agargiulo.com) (Github username: agargiulo)
GitHub-Backup makes a local backup copy of all of a github user's (or github organization's) repositories.
GitHub-Backup requires pygithub3
a Python library for the GitHub API v3.
Installation is simple with
pip install pygithub3
usage: github-backup.py [-h] [-c] [-m] [-g ARGS] [-s SUFFIX]
username backupdir
makes a backup of all of a github user's repositories
positional arguments:
username A Github username
backupdir The folder where you want your backups to go
optional arguments:
-h, --help show this help message and exit
-c, --cron Use this when running from a cron job
-m, --mirror Create a bare mirror
-g ARGS, --git ARGS Pass extra arguments to git
-s SUFFIX, --suffix SUFFIX
Add suffix to repository directory names
Then, put it in a cron job somewhere and forget about it for eternity.
This software is useful in many cases:
-
GitHub suddenly explodes.
-
GitHub goes out of business.
-
Your corporation's backup policies are more stringent than GitHub's.
-
You have spotty/no internet access - perhaps you'd like to have all of your repositories available to code on while you ride the train?
-
You are paranoid tinfoil-hat wearer who needs to back up everything in triplicate on a variety of outdated tape media.
If you have any improvements, I'm happy, (grateful, in fact) to entertain pull requests/patches, just drop me a line or message me on GitHub.