| name | gitlab-repo |
| description | 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. |
| version | 1.0.0 |
| author | GitLab-Assistant-Skills |
| license | MIT |
| allowed-tools | ["Bash","Read","Glob","Grep"] |
Repository Skill
Repository and project operations for GitLab using the glab CLI.
Quick Reference
| Operation | Command | Risk |
|---|
| 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
glab repo clone <repo> [directory] [options]
Arguments:
<repo> - Repository path, URL, or project ID
[directory] - Optional local directory name
Options:
| Flag | Description |
|---|
-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:
glab repo clone gitlab-org/cli
glab repo clone https://gitlab.com/gitlab-org/cli
glab repo clone gitlab-org/cli my-glab
glab repo clone 4356677
glab repo clone gitlab-org/cli -p
glab repo clone -g mygroup --paginate
glab repo clone -g mygroup --archived=false --paginate
Fork Repository
glab repo fork <repo> [options]
Options:
| Flag | Description |
|---|
-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:
glab repo fork owner/repo
glab repo fork owner/repo --clone
glab repo fork owner/repo --name="my-fork"
glab repo fork owner/repo --remote
View Repository
glab repo view [repo] [options]
Options:
| Flag | Description |
|---|
-w, --web | Open repository in browser |
-b, --branch=<branch> | View specific branch |
Examples:
glab repo view
glab repo view gitlab-org/cli
glab repo view --web
glab repo view --branch=develop
Create Repository
glab repo create [name] [options]
Options:
| Flag | Description |
|---|
-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:
glab repo create
glab repo create my-project -d "My awesome project"
glab repo create my-project --group=myteam --public
glab repo create my-project --clone --readme
Search Repositories
glab repo search <query> [options]
Options:
| Flag | Description |
|---|
-P, --per-page=<n> | Results per page |
--all | Get all results |
Examples:
glab repo search "cli tools"
glab repo search "gitlab" --per-page=50
Archive Repository
glab repo archive [repo] [options]
Archives a repository (makes it read-only).
Examples:
glab repo archive
glab repo archive owner/repo
Delete Repository
glab repo delete [repo] [options]
Warning: This permanently deletes the repository and all its data!
Options:
| Flag | Description |
|---|
-y, --yes | Skip confirmation prompt |
Examples:
glab repo delete owner/repo
glab repo delete owner/repo --yes
List Contributors
glab repo contributors [repo] [options]
Options:
| Flag | Description |
|---|
-P, --per-page=<n> | Results per page |
--order=<order> | Sort order: name, email, commits |
Examples:
glab repo contributors
glab repo contributors --order=commits
Transfer Repository
glab repo transfer <repo> <new-namespace>
Transfer a repository to another namespace.
Examples:
glab repo transfer myrepo newgroup
Common Workflows
Workflow 1: Fork and Contribute
glab repo fork upstream/project --clone
cd project
git remote add upstream https://gitlab.com/upstream/project.git
git checkout -b feature/my-change
git add . && git commit -m "Add feature"
git push -u origin feature/my-change
glab mr create --target-branch=main
Workflow 2: Batch Clone Team Repos
glab repo clone -g myteam --archived=false --paginate -p
Workflow 3: Create New Project
glab repo create awesome-project \
-d "An awesome new project" \
--group=myteam \
--readme \
--clone
cd awesome-project
glab repo view --web
Troubleshooting
| Issue | Cause | Solution |
|---|
| Authentication failed | Invalid/expired token | Run glab auth login |
| Repo not found | Invalid path or no access | Check repo path and permissions |
| Clone failed | SSH keys not configured | Use HTTPS or configure SSH keys |
| Cannot fork | Already forked or no permission | Check existing forks |
| Cannot delete | Not owner or maintainer | Request owner to delete |
Related Documentation