gitlab-repo

Original🇺🇸 English
Translated

GitLab repository operations. ALWAYS use this skill when user wants to: (1) clone repositories, (2) fork projects, (3) view repo info, (4) create new projects, (5) archive/delete repos, (6) manage repo settings.

2installs
Added on

NPX Install

npx skill4agent add grandcamel/gitlab-assistant-skills gitlab-repo

Tags

Translated version includes tags in frontmatter

Repository Skill

Repository and project operations for GitLab using the
glab
CLI.

Quick Reference

OperationCommandRisk
Clone repo
glab repo clone <repo>
-
Fork repo
glab repo fork <repo>
⚠️
View repo
glab repo view
-
Create repo
glab repo create
⚠️
Search repos
glab repo search <query>
-
Archive repo
glab repo archive
⚠️⚠️
Delete repo
glab repo delete
⚠️⚠️⚠️
List contributors
glab repo contributors
-
Risk Legend: - Safe | ⚠️ Caution | ⚠️⚠️ Warning | ⚠️⚠️⚠️ Danger

When to Use This Skill

ALWAYS use when:
  • User wants to clone, fork, or create repositories
  • User mentions "repo", "repository", "project", "clone", "fork"
  • User wants to manage project settings
NEVER use when:
  • User wants to work with specific repo content (use git directly)
  • User wants to manage deploy keys (use gitlab-deploy-key skill)

Available Commands

Clone Repository

bash
glab repo clone <repo> [directory] [options]
Arguments:
  • <repo>
    - Repository path, URL, or project ID
  • [directory]
    - Optional local directory name
Options:
FlagDescription
-g, --group=<group>
Clone all repos in a group
-p, --preserve-namespace
Clone into subdirectory based on namespace
-a, --archived=<bool>
Include/exclude archived repos (with -g)
--paginate
Fetch all pages of projects (with -g)
Examples:
bash
# Clone by path
glab repo clone gitlab-org/cli

# Clone by URL
glab repo clone https://gitlab.com/gitlab-org/cli

# Clone into specific directory
glab repo clone gitlab-org/cli my-glab

# Clone by project ID
glab repo clone 4356677

# Clone preserving namespace structure
glab repo clone gitlab-org/cli -p
# Creates: gitlab-org/cli/

# Clone all repos in a group
glab repo clone -g mygroup --paginate

# Clone only non-archived repos from group
glab repo clone -g mygroup --archived=false --paginate

Fork Repository

bash
glab repo fork <repo> [options]
Options:
FlagDescription
-c, --clone
Clone the fork after creating
-n, --name=<name>
Name for the forked project
-p, --path=<path>
Path for the forked project
--remote
Add a remote for the fork
Examples:
bash
# Fork a repository
glab repo fork owner/repo

# Fork and clone
glab repo fork owner/repo --clone

# Fork with custom name
glab repo fork owner/repo --name="my-fork"

# Fork and add remote
glab repo fork owner/repo --remote

View Repository

bash
glab repo view [repo] [options]
Options:
FlagDescription
-w, --web
Open repository in browser
-b, --branch=<branch>
View specific branch
Examples:
bash
# View current repository info
glab repo view

# View specific repo
glab repo view gitlab-org/cli

# Open in browser
glab repo view --web

# View specific branch
glab repo view --branch=develop

Create Repository

bash
glab repo create [name] [options]
Options:
FlagDescription
-n, --name=<name>
Repository name
-d, --description=<desc>
Repository description
-g, --group=<group>
Create in specific group/namespace
--public
Make repository public
--private
Make repository private
--internal
Make repository internal
--readme
Initialize with README
-c, --clone
Clone after creation
Examples:
bash
# Create repository interactively
glab repo create

# Create with name and description
glab repo create my-project -d "My awesome project"

# Create public repo in group
glab repo create my-project --group=myteam --public

# Create and clone
glab repo create my-project --clone --readme

Search Repositories

bash
glab repo search <query> [options]
Options:
FlagDescription
-P, --per-page=<n>
Results per page
--all
Get all results
Examples:
bash
# Search for repos
glab repo search "cli tools"

# Search with more results
glab repo search "gitlab" --per-page=50

Archive Repository

bash
glab repo archive [repo] [options]
Archives a repository (makes it read-only).
Examples:
bash
# Archive current repo
glab repo archive

# Archive specific repo
glab repo archive owner/repo

Delete Repository

bash
glab repo delete [repo] [options]
Warning: This permanently deletes the repository and all its data!
Options:
FlagDescription
-y, --yes
Skip confirmation prompt
Examples:
bash
# Delete repo (will prompt for confirmation)
glab repo delete owner/repo

# Delete without confirmation (dangerous!)
glab repo delete owner/repo --yes

List Contributors

bash
glab repo contributors [repo] [options]
Options:
FlagDescription
-P, --per-page=<n>
Results per page
--order=<order>
Sort order: name, email, commits
Examples:
bash
# List contributors for current repo
glab repo contributors

# List with sorting
glab repo contributors --order=commits

Transfer Repository

bash
glab repo transfer <repo> <new-namespace>
Transfer a repository to another namespace.
Examples:
bash
# Transfer to different group
glab repo transfer myrepo newgroup

Common Workflows

Workflow 1: Fork and Contribute

bash
# 1. Fork the repository
glab repo fork upstream/project --clone

# 2. Add upstream remote
cd project
git remote add upstream https://gitlab.com/upstream/project.git

# 3. Create feature branch
git checkout -b feature/my-change

# 4. Make changes, commit, push
git add . && git commit -m "Add feature"
git push -u origin feature/my-change

# 5. Create MR to upstream
glab mr create --target-branch=main

Workflow 2: Batch Clone Team Repos

bash
# Clone all non-archived repos from team group
glab repo clone -g myteam --archived=false --paginate -p

# This creates:
# myteam/
#   repo1/
#   repo2/
#   ...

Workflow 3: Create New Project

bash
# 1. Create the repository
glab repo create awesome-project \
  -d "An awesome new project" \
  --group=myteam \
  --readme \
  --clone

# 2. Set up the project
cd awesome-project
# Add initial files...

# 3. View it in browser
glab repo view --web

Troubleshooting

IssueCauseSolution
Authentication failedInvalid/expired tokenRun
glab auth login
Repo not foundInvalid path or no accessCheck repo path and permissions
Clone failedSSH keys not configuredUse HTTPS or configure SSH keys
Cannot forkAlready forked or no permissionCheck existing forks
Cannot deleteNot owner or maintainerRequest owner to delete

Related Documentation

  • Safeguards
  • Quick Reference