Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chappio/git-backup
Backup all your github & gitlab repositories
https://github.com/chappio/git-backup
backup github gitlab
Last synced: 2 days ago
JSON representation
Backup all your github & gitlab repositories
- Host: GitHub
- URL: https://github.com/chappio/git-backup
- Owner: ChappIO
- License: apache-2.0
- Created: 2021-05-25T14:33:53.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-12-12T00:37:28.000Z (11 days ago)
- Last Synced: 2024-12-20T18:08:44.022Z (2 days ago)
- Topics: backup, github, gitlab
- Language: Go
- Homepage:
- Size: 104 KB
- Stars: 208
- Watchers: 2
- Forks: 13
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# git-backup
A cli to pull all your git repositories for backup purposes. It is completely stand-alone. You don't even need to install git.
## Download
The latest version can be downloaded from the [releases page](https://github.com/ChappIO/git-backup/releases).
## Configuration File
Example yaml Configuration:
```yaml
# The github section contains backup jobs for
# GitHub and GitHub Enterprise
github:
# (optional) The job name. This is used to
# create a subfolder in the backup folder.
# (default: GitHub)
- job_name: github.com
# (required) The GitHub personal access
# token. Create one with the scopes:
# "read:org, repo"
# https://github.com/settings/tokens/new?scopes=repo,read:org
access_token: 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
# (optional) Back up repos you own.
# (default: true)
owned: true
# (optional) Back up repos you starred.
# (default: true)
starred: true
# (optional) Back up repos on which you
# are a collaborator. (default: true)
collaborator: true
# (optional) Back up repos owned by
# organisations of which you are a member.
# (default: true)
org_member: true
# (optional) Set this url to connect to
# your self-hosted github install.
# (default: https://api.github.com)
url: https://github.mydomain.com
# (optional) Exclude this list of repos
excluded:
- my-namespace/excluded-repository-name
# The gitlab section contains backup jobs for
# GitLab.com and GitLab on premise
gitlab:
# (optional) The job name. This is used to
# create a subfolder in the backup folder.
# (default: GitLab)
- job_name: gitlab.com
# (required) The GitLab access token.
# Create one with the scopes: "api"
# https://gitlab.com/-/profile/personal_access_tokens?scopes=api&name=git-backup
access_token: glpat-6t78yuihy789uy8t768
# (optional) Back up repos you own.
# (default: true)
owned: true
# (optional) Back up repos you starred.
# (default: true)
starred: true
# (optional) Back up repos owned by
# teams of which you are a member.
# (default: true)
member: true
# (optional) Set this url to connect to
# your self-hosted gitlab install.
# (default: https://gitlab.com/)
url: https://gitlab.mydomain.com
# (optional) Exclude this list of repos
excluded:
- my-namespace/excluded-repository-name
```## Usage: CLI
```asciidoc
Usage: git-backupOptions:
-backup.path string
The target path to the backup folder. (default "backup")
-config.file string
The path to your config file. (default "git-backup.yml")
-backup.fail-at-end
Fail at the end of backing up repositories, rather than right away.
-backup.bare-clone
Make bare clones without checking out the main branch.
-insecure
Use this flag to disable verification of SSL/TLS certificates
-version
Show the version number and exit.
```## Usage: Docker
First, create your [git-backup.yml file](#configuration-file) at `/path/to/your/backups`.
Then update your backups using the mounted volume.
```bash
docker run -v /path/to/backups:/backups ghcr.io/chappio/git-backup:1
```### Parameters
You can specify several parameters when starting this container.
| **Parameter** | **Description** |
|--------------------------------|----------------------------------------------------------------------------------------|
| `-v /path/to/backups:/backups` | Mount the folder where you want to store your backups and read you configuration file. |
| `-e TZ=Europe/Amsterdam` | Set the timezone used for logging. |
| `-e PUID=0` | Set the user id of the unix user who will own the backup files in /backup. |
| `-e PGID=0` | Set the group id of the unix user's group who will own the backup files. |