This is a helper python program which downloads remote Gitlab repo(s) with support for group / sub-groups.
The program accepts a single top-level group-id
, which it will use
to traverse through the sub-groups to perform agit [clone|pull]
command using ssh.
- gitlab api token
- gitlab configured with ssh-key
git clone git@github.com:nabadger/gitlab-sync.git
cd gitlab-sync
python3 -m pip install .
To uninstall:
python3 -m pip uninstall gitlab-sync
gitlab-sync --help
usage: gitlab-sync [-h] [--group-id GROUP_ID]
[--local-repo-path LOCAL_REPO_PATH]
[--gitlab-token GITLAB_TOKEN] [--dry-run] [--no-dry-run]
optional arguments:
-h, --help show this help message and exit
--group-id GROUP_ID group id
--local-repo-path LOCAL_REPO_PATH
local repo path (clone under this dir)
--gitlab-token GITLAB_TOKEN
gitlab private token
--dry-run dry-run (do not do git commands)
--no-dry-run no-dry-run (do git commands)
gitlab-sync \
--group-id <numeric-gitlab-group-id> \
--local-repo-path /tmp/mycheckouts \
--gitlab-token <gitlab-api-token> \
--no-dry-run
The Group ID can be found by navigating to the Group (or SubGroup) settings page and expanding the General settings.