Skip to main content

Archive public Git Repos and Gists from GitHub

Project description

githubtakeout

Archive public Git Repos and Gists from GitHub



About:

githubtakeout is a data export tool for archiving Git repositories hosted on GitHub. It clones a user's public repos and creates an archive of each.

By default, it doesn't save commit history or branches (.git directory), or Gist repositories (both can be enabled with command line options). It also doesn't access private repositories or secret gists.

When you run the program, archives of your repos will be saved in a directory named backups inside your current working directory, unless a different location is specified using the --dir option.

Archives are saved in compressed zip format (.zip) by default, but can also be saved as tarballs (.tar.gz) using the --format=tar option.

Requirements:

  • Python 3.9+
  • Git 1.7+
  • Python packages:
    • GitPython
    • PyGithub

Installing and Running:

Install from PyPI:

pip install githubtakeout

Create/Activate Virtual Environment, Install from PyPI, Run:

python3 -m venv venv
source venv/bin/activate
pip install githubtakeout
githubtakeout <github username>

Clone Repo, Create/Activate Virtual Environment, Install from Source, Run:

git clone git@github.com:cgoldberg/githubtakeout.git
cd ./githubtakeout
python3 -m venv venv
source venv/bin/activate
pip install .
githubtakeout <github username>

Usage:

usage: githubtakeout [-h] [--dir DIR] [--format FORMAT] [--gists] [--history] [--list] username

positional arguments:
  username         GitHub username

options:
  -h, --help       show this help message and exit
  --dir DIR        output directory
  --format FORMAT  archive format (tar, zip)
  --gists          include gists
  --history        include commit history and branches (.git directory)
  --list           list repos only

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

githubtakeout-0.1.0.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

githubtakeout-0.1.0-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file githubtakeout-0.1.0.tar.gz.

File metadata

  • Download URL: githubtakeout-0.1.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for githubtakeout-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1cd748fce3a49c690d7b39e7b5d9f176a02b152fc51b9e06145ada38f198f0ab
MD5 52b6826cf169387d388ff9d34c390e07
BLAKE2b-256 29a4ff6c2eb38d87b5990d4e6faff10f5bf81f152cc5bbf6c1eecde2397cda70

See more details on using hashes here.

File details

Details for the file githubtakeout-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: githubtakeout-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for githubtakeout-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bfb57d4b82685b02533b288c42634366b01cf4591f5dbd87ffd38f2fe605f8d1
MD5 c29b0151d42e74627afdf1a99aaf4073
BLAKE2b-256 81916ac5928d87380249932d83fd9490ede0d3f816725b20618566c618be39dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page