cloneholio
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.
Installation
Token Setup
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)
Example
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
Help
$ cloneholio -h
usage: cloneholio [-h] [-n NUM_PROCESSES] -t TOKEN [-p {github,gitlab}]
[--insecure] [-u BASE_URL] [-e EXCLUDE] [--exclude-archived]
[--exclude-forks] [-d DIRECTORY] [--remove-orphans]
[--depth DEPTH | --mirror] [--prune] [-q | -v | --progress]
[--list] [--version] [--all]
[paths ...]
Maintain local backups of all Git repositories belonging to a user or group.
Token creation:
- GitLab
Permissions: api
URL: https://gitlab.com/profile/personal_access_tokens
- GitHub
Permissions: repo:status
URL: https://github.com/settings/tokens/new
positional arguments:
paths
options:
-h, --help show this help message and exit
-n, --num-processes NUM_PROCESSES
Number of processes to use
--depth DEPTH Corresponds to the git clone --depth option
--mirror Maintain bare mirrors (git clone --mirror).
Captures all refs; no working tree.
--prune With --mirror, prune local refs deleted upstream.
Default keeps them.
-q, --quiet Suppress informational output
-v, --verbose Enable debug logs
--progress Show progress bar
--list List remote repositories then exit.
--version show program's version number and exit
--all Get all groups (GitLab) or organizations (GitHub)
remote configuration:
-t, --token TOKEN
-p, --provider {github,gitlab}
--insecure Ignore SSL errors
-u, --base-url BASE_URL
-e, --exclude EXCLUDE
Paths to exclude from backup
--exclude-archived exclude archived repositories
--exclude-forks exclude repositories that are forks
local configuration:
-d, --directory DIRECTORY
--remove-orphans Remove orphaned directories
Metadata
Release files for cloneholio 0.16.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cloneholio-0.16.1.tar.gz | 43.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cloneholio-0.16.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 54.1 kB
Release files / cloneholio-0.16.1.tar.gz
| Download URL | cloneholio-0.16.1.tar.gz |
|---|---|
| Size | 43.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b99a02dade6bef2e2a6c19ec78b1c440db74745f4ee7c94ad2fec30e8a886ac7
|
|
BLAKE2b-256 checksum How to use checksums |
4b1ad0975833eff9b87d3cfcefe11576ffedecc1ca6127e490287719ad4a3714
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / cloneholio-0.16.1-py3-none-any.whl
| Download URL | cloneholio-0.16.1-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f10794e9f07bbe6352b3e54617e740763b4c1692493731b1bb3907109785944c
|
|
BLAKE2b-256 checksum How to use checksums |
6e7643ccc98e354028075501a6c34f8e5b525476d829bdf2a1f86cc40a9e70e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|