| name | glab |
| description | Expert guidance for using the GitLab CLI (glab) to manage GitLab issues, merge requests, CI/CD pipelines, repositories, and other GitLab operations from the command line. Use this skill when the user needs to interact with GitLab resources or perform GitLab workflows. |
GitLab CLI (glab) Skill
Provides guidance for using glab, the official GitLab CLI, to perform GitLab operations from the terminal.
When to Use This Skill
Invoke when the user needs to:
- Create, review, or manage merge requests
- Work with GitLab issues
- Monitor or trigger CI/CD pipelines
- Clone or manage repositories
- Perform any GitLab operation from the command line
Prerequisites
Verify glab installation before executing commands:
glab --version
If not installed, inform the user and provide platform-specific installation guidance.
Authentication Quick Start
Most glab operations require authentication:
glab auth login
glab auth status
glab auth login --hostname gitlab.example.org
export GITLAB_TOKEN=your-token
export GITLAB_HOST=gitlab.example.org
Core Workflows
Creating a Merge Request
git push -u origin feature-branch
glab mr create --title "Add feature" --description "Implements X"
glab mr create --title "Fix bug" --reviewer=alice,bob --label="bug,urgent"
Reviewing Merge Requests
glab mr list --reviewer=@me
glab mr checkout <mr-number>
glab mr approve <mr-number>
glab mr note <mr-number> -m "Please update tests"
Managing Issues
glab issue create --title "Bug in login" --label=bug
glab mr create --title "Fix login" --description "Closes #<issue-number>"
glab issue list --assignee=@me
Monitoring CI/CD
glab pipeline ci view
glab ci status
glab ci trace
glab ci retry
glab ci lint
Common Patterns
Working Outside Repository Context
When not in a Git repository, specify the repository:
glab mr list -R owner/repo
glab issue list -R owner/repo
Self-Hosted GitLab
Set hostname for all commands:
export GITLAB_HOST=gitlab.example.org
glab repo clone gitlab.example.org/owner/repo
Automation and Scripting
Use JSON output for parsing:
glab mr list --output=json | jq '.[] | .title'
Using the API Command
The glab api command provides direct GitLab API access:
glab api projects/:id/merge_requests
glab api --paginate "projects/:id/pipelines/123/jobs?per_page=100"
glab api --method POST projects/:id/issues --field title="Bug" --field description="Details"
Best Practices
- Verify authentication before executing commands:
glab auth status
- Use
--help to explore command options: glab <command> --help
- Link MRs to issues using "Closes #123" in MR description
- Lint CI config before pushing:
glab ci lint
- Check repository context when commands fail:
git remote -v
Common Commands Quick Reference
Merge Requests:
glab mr list --assignee=@me - Your assigned MRs
glab mr list --reviewer=@me - MRs for you to review
glab mr create - Create new MR
glab mr checkout <number> - Test MR locally
glab mr approve <number> - Approve MR
glab mr merge <number> - Merge approved MR
Issues:
glab issue list - List all issues
glab issue create - Create new issue
glab issue close <number> - Close issue
CI/CD:
glab pipeline ci view - Watch pipeline
glab ci status - Check status
glab ci lint - Validate .gitlab-ci.yml
glab ci retry - Retry failed pipeline
Repository:
glab repo clone owner/repo - Clone repository
glab repo view - View repo details
glab repo fork - Fork repository
Progressive Disclosure
For detailed command documentation, refer to:
- references/commands-detailed.md - Comprehensive command reference with all flags and options
- references/quick-reference.md - Condensed command cheat sheet
- references/troubleshooting.md - Detailed error scenarios and solutions
Load these references when:
- User needs specific flag or option details
- Troubleshooting authentication or connection issues
- Working with advanced features (API, schedules, variables, etc.)
Common Issues Quick Fixes
"command not found: glab" - Install glab or verify PATH
"401 Unauthorized" - Run glab auth login
"404 Project Not Found" - Verify repository name and access permissions
"not a git repository" - Navigate to repo or use -R owner/repo flag
"source branch already has a merge request" - Use glab mr list to find existing MR
For detailed troubleshooting, load references/troubleshooting.md.
Notes
- glab auto-detects repository context from Git remote
- Most commands have
--web flag to open in browser
- Use
--output=json for scripting and automation
- Multiple GitLab accounts can be authenticated simultaneously
- Commands respect Git configuration and current repository context