Skip to content

Instantly share code, notes, and snippets.

@vxavictor513
Last active May 26, 2025 06:55
Show Gist options
  • Save vxavictor513/a2e3ad5b2425ee8d609feb835eabb18f to your computer and use it in GitHub Desktop.
Save vxavictor513/a2e3ad5b2425ee8d609feb835eabb18f to your computer and use it in GitHub Desktop.

Clone a GitLab Group

When working with a distributed system made of many code repositories, it is tedious to clone each repository manually.

Below is how you could clone an entire GitLab group of repositories in one go.

1. Install glab

Install the GitLab CLI glab by following the instructions at https://gitlab.com/gitlab-org/cli/#installation.

2. Create a Personal Access Token

Generate a personal access token with at least the api and write_repository scopes from your GitLab instance.

3. Configure TLS (if needed)

If your GitLab instance uses a self-signed certificate, either install the appropriate certificates or configure glab to skip TLS verification.

glab config set skip_tls_verify true --host gitlab.example.com

4. Authenticate with GitLab

Authenticate using glab auth login. Here’s a sample session:

$ glab auth login
? What GitLab instance do you want to sign in to? GitLab Self-Managed or GitLab Dedicated instance
? GitLab hostname: gitlab.example.com
? API hostname: gitlab.example.com
- Signing into gitlab.example.com
? How would you like to sign in? Token
Tip: generate a personal access token at https://gitlab.example.com/-/user_settings/personal_access_tokens?scopes=api,write_repository.
The minimum required scopes are 'api' and 'write_repository'.
? Paste your authentication token: **************************
? Choose default Git protocol: SSH
? Choose host API protocol: HTTPS
- glab config set -h gitlab.example.com git_protocol ssh
✓ Configured Git protocol.
- glab config set -h gitlab.example.com api_protocol https
✓ Configured API protocol.
✓ Logged in as johndoe
✓ Configuration saved to /Users/johndoe/.config/glab-cli/config.yml

5. Clone the Group

Use the following command to clone all repositories under a GitLab group.

# This clones all repositories under https://gitlab.example.com/foo
GITLAB_HOST=gitlab.example.com glab repo clone -g foo --paginate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment