Backup GitHub repositories locally.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
lib
.editorconfig
.gitignore
CHANGELOG.md
LICENSE
README.md
package.json

README.md

github-backup

Backup GitHub repositories locally. This tool mirrors all public repositories of a GitHub user and all of the organizations that user is publicly a member of. It also mirrors any repositories the user has starred. If the repositories already exist on disk, they are updated. This script is meant to be run as a cron job.

The program uses the GitHub API to discover repositories, and by default it accesses it unauthenticated, which subjects it to lower rate limits. For most people running this every few hours won't be a problem. If you start getting 403 Forbidden errors, you can create a personal access token and store it in the GITHUB_ACCESS_TOKEN environment variable to get a higher rate limit.

Installation

  1. Install Node.js
  2. Run npm install -g github-backup

Usage

github-backup [-h] [-v] [--include INCLUDE] [--dry-run] username path

To-do

  1. Add ability to specify single individual repository as in "user/repository" or "organization/repository".
  2. Discover and backup private repositories.