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.