Skip to content
This repository has been archived by the owner on Mar 16, 2022. It is now read-only.

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

License

Notifications You must be signed in to change notification settings

benbalter/github_records_archiver

Repository files navigation

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

About

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

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •