Octoclone

             _              | |
  ___   ____| |_  ___   ____| | ___  ____   ____
 / _ \ / ___)  _)/ _ \ / ___) |/ _ \|  _ \ / _  )
| |_| ( (___| |_| |_| ( (___| | |_| | | | ( (/ /
 \___/ \____)\___)___/ \____)_|\___/|_| |_|\____)

A GitHub backup solution that just works! (based on GitHub API v3)

Installation

octoclone is available through rubygems and known to work with ruby 1.9. to install, just type

$ gem install octoclone

Usage

Make sure that the key file of the entered username is added to GitHub (entering username and password is not enough)

You may add ~/.ssh/id_rsa.pub to your GitHub account by running

$ octoclone -k

Or if you want to add a custom key, run

$ octoclone -ki "~/.ssh/id_dsa.pub"

You may remove keys interactively with

$ octoclone -x

Now you may run

$ octoclone -cd "/path/to/backup/dir"

Tarballs

Tarballs are made from whatever that is cloned. So if you specify --public, only public repositories of the target users are included in the tarball.

Tarballs are created using the -a option

Uploading to Amazon S3

In order to upload to S3, first you must specify key_id, secret and bucket in the s3_cred.yml file. A sample file is included, you may rename and fill it with your own credientials. Also, to upload cloned files to S3, you must create a tarball, which itself needs the -c option to clone files. The uploaded tarball will be named like 2012-11-15_11-19-02_octoclone_backup.tgz.

So to backup all your repos, tarball them and upload them to S3, simply run:

$ octoclone -ca --s3

by default, tarball and cloned files are stored in /tmp.

Further help

$ octoclone --help