/git-repo-backup

Automated and reliable backups of your GitHub and GitLab repositories

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

git-repo-backup

test-workflow release-workflow

Automated and reliable backups of your GitHub and GitLab repositories

Features

📦 Backups remote Git repositories hosted on GitLab or GitHub
⛵️ Automatically discovers all repositories for a given username
🕵️ Works with public and private repositories
🚦 Support for explicit deny- and allow-lists
🔒 Can read Personal Access Tokens from Hashicorp Vault
🔭 Observability provided by metrics

Roadmap

🚀 Upload changes to a S3 compatible service
🍵 Add GitTea service support
🪆 Add dummy service that allows a plain list of loose Git repositories

Why would I need this?

GitHub and GitLab don't run on altruism. Your account or individual repositories may be gone overnight without notice.

Installation

Docker / Podman

$ git clone https://github.com/soerenschneider/git-repo-backup.git
$ cd git-repo-backup
$ docker run -v $(pwd)/contrib:/config ghcr.io/soerenschneider/git-repo-backup --config /config/example-config.json --dest /tmp

From Source

As a prerequisite, you need to have Python3 installed.

$ git clone https://github.com/soerenschneider/git-repo-backup.git
$ cd git-repo-backup
$ make venv
$ ./venv/bin/python3 git_repo_backup --config contrib/example-config.json --dest /tmp

Demo

demo.gif

Usage and Configuration

Head over here to see config and usage examples.

Metrics

The exposed metrics are listed here.

Changelog

See the full changelog