Repository is archived
No commit activity in last 3 years
No release in over 3 years
Backs up a GitHub organization's repositories and all their associated information for archival purposes
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.16
~> 0.10
~> 10.0
~> 3.0
~> 0.50
~> 3.0

Runtime

~> 2.0
~> 4.0
~> 1.10
~> 0.19
 Project Readme

This project is no longer maintained. If you are interested in archiving your user or organization data, please use the purpose-built migration API instead.


GitHub Records Archiver

Build Status Gem Version Coverage Status PRs Welcome

Backs up a GitHub organization's repositories and all their associated information for archival purposes.

What it archives

  • Git data (change history, tags, branches, etc.)
  • Wikis (including change history)
  • Issues and pull request (including comments, current state, etc.)
  • Teams (including members and repository permissions)

Requirements

  1. Ruby
  2. A GitHub personal access token with repo scope.

Setup

If you have Ruby installed, simply run:

gem install github_records_archiver

Basic usage

$ github-records-archiver archive ORGANIZATION --token PERSONAL_ACCESS_TOKEN`

Alternatively, you could pass the personal access token as the GITHUB_TOKEN environmental variable:

$ GITHUB_TOKEN=1234 github-records-archiver archive ORGANIZATION`

Output

The script will create an archive directory, with one folder for each organization.

Within each organization folder, there will be one folder per repository.

Within each repository folder will be the repository content as a git repository.

If the repository has a Wiki, the wiki will be cloned as a wiki subfolder, as a Git repository.

If the repository has issues or pull requests, it will create an issues sub-folder with each issue and its associated comments stored as both markdown (human readable) and JSON (machine readable).

Example output:

├─ archive
├─── organization
├──── repository
├────── README.md
├────── LICENSE.txt
├──── wiki
├────── wiki-page.md
├──── issues
├────── 1.md
├────── 1.json
├─── another organization
├──── another-repository
├────── README.md
├────── LICENSE.txt
├──── wiki
├────── wiki-page.md
├──── issues
├────── 1.md
├────── 1.json

Advanced usage

You may set the following flags:

  • --dest-dir - the destination archive directory, defaults to ./archive
  • --verbose - verbose output while archiving

Additionally, the following commands are also available:

  • delete [ORGANIZATION] - delete the entire archive directory or an organization's archive
  • help - display help information
  • version - display the GitHub Record Archiver version