Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/soerenschneider/git-repo-backup

Automated and reliable backups of your GitHub and GitLab repositories
https://github.com/soerenschneider/git-repo-backup

api-rest backup git git-backup github gitlab long-term-storage repository

Last synced: 3 months ago
JSON representation

Automated and reliable backups of your GitHub and GitLab repositories

Awesome Lists containing this project

README

        

# git-repo-backup
![test-workflow](https://github.com/soerenschneider/git-repo-backup/actions/workflows/test.yaml/badge.svg)
![release-workflow](https://github.com/soerenschneider/git-repo-backup/actions/workflows/release-container.yaml/badge.svg)

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
````shell
$ 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.
```shell
$ 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](demo.gif)

# Usage and Configuration
Head over [here](docs/configuration.md) to see config and usage examples.

# Metrics
The exposed metrics are listed [here](docs/metrics.md).

## Changelog
See the [full changelog](CHANGELOG.md)