Maintain local backups of all Git repositories belonging to a user or group.
Features:
- Supports both GitHub and GitLab.
- Back up all repositories owned by users, groups, and subgroups.
- Back up individual repositories.
- Scale to a configurable number of processes.
GitHub
Create a personal access token (Tokens (classic))) with the following permissions:
repo:status
GitLab
Create a personal access token with the following permissions:
api
(Access the authenticated user's API)
This will back up all repositories owned by the python organization on GitHub.
$ cloneholio -t TOKEN -p github python
INFO Begin "github" processing using "/home/draje/Code/GitLab/nvllsvm/cloneholio"
INFO Processing python/asyncio
INFO Processing python/bpo-builder
...
INFO Processing python/typing
INFO Finished "github" processing 62 repos with 0 failures
$ cloneholio -h
usage: cloneholio [-h] [-n NUM_PROCESSES] [-d DIRECTORY] -t TOKEN
[-p {github,gitlab}] [--depth DEPTH] [--insecure]
[-u BASE_URL] [--version]
paths [paths ...]
Maintain local backups of all Git repositories belonging to a user or group.
positional arguments:
paths
optional arguments:
-h, --help show this help message and exit
-n NUM_PROCESSES Number of processes to use
-d DIRECTORY, --directory DIRECTORY
-t TOKEN, --token TOKEN
-p {github,gitlab}, --provider {github,gitlab}
--depth DEPTH Corresponds to the git clone --depth option
--insecure Ignore SSL errors
-u BASE_URL, --base-url BASE_URL
--version show program's version number and exit