Work with GitLab issues, merge requests, pipelines, and repositories using the glab CLI. Use when managing GitLab projects.
Resources
2Install
npx skillscat add odyssey4me/agent-skills/gitlab Install via the SkillsCat registry.
GitLab Skill
This skill provides GitLab integration using the official glab CLI tool. A Python wrapper script produces markdown-formatted output for read/view operations. Action commands (create, merge, close, comment) should use glab directly.
Prerequisites
Install glab CLI: https://gitlab.com/gitlab-org/cli#installation
Quick install:
# macOS
brew install glab
# Linux (Debian/Ubuntu)
sudo apt install glab
# Fedora/RHEL/CentOS
sudo dnf install glab
# Windows
winget install GLab.GLabAuthentication
# Authenticate with GitLab
glab auth login
# Verify authentication
glab auth statusSupports GitLab.com, GitLab Dedicated, and GitLab Self-Managed instances.
See GitLab CLI Authentication for details.
Script Usage
The wrapper script (scripts/gitlab.py) formats output as markdown. Use it for read/view operations to get agent-consumable output. Use glab directly for action commands (create, merge, close, comment).
# Check glab CLI is installed and authenticated
python scripts/gitlab.py check
# Issues
python scripts/gitlab.py issues list --repo GROUP/REPO
python scripts/gitlab.py issues view 123 --repo GROUP/REPO
# Merge Requests
python scripts/gitlab.py mrs list --repo GROUP/REPO
python scripts/gitlab.py mrs view 456 --repo GROUP/REPO
# Pipelines
python scripts/gitlab.py pipelines list --repo GROUP/REPO
python scripts/gitlab.py pipelines view 123456 --repo GROUP/REPO
# Repositories
python scripts/gitlab.py repos list
python scripts/gitlab.py repos view GROUP/REPOAll commands support --limit N for list commands (default 30).
Commands (Direct glab Usage)
For action commands, use glab directly:
Issues
glab issue list # List issues
glab issue view 123 # View issue details
glab issue create # Create new issue
glab issue note 123 # Add comment
glab issue close 123 # Close issue
glab issue update 123 --label bug # Edit issueFull reference: glab issue
Merge Requests
glab mr list # List merge requests
glab mr view 456 # View MR details
glab mr create # Create new MR
glab mr approve 456 # Approve MR
glab mr merge 456 # Merge MR
glab mr checkout 456 # Checkout MR branch
glab mr diff 456 # View MR diff
glab mr note 456 # Add comment to MRFull reference: glab mr
Pipelines & CI/CD
glab ci list # List pipelines
glab ci view 123456 # View pipeline details
glab ci run # Trigger pipeline
glab ci trace # Watch pipeline logs
glab ci retry 123456 # Retry failed pipeline
glab ci status # Show pipeline statusFull references:
Repositories
glab repo list # List repositories
glab repo view GROUP/REPO # View repository
glab repo create # Create repository
glab repo clone GROUP/REPO # Clone repository
glab repo fork GROUP/REPO # Fork repositoryFull reference: glab repo
Releases
glab release list # List releases
glab release view v1.0.0 # View release details
glab release create v1.0.0 # Create release
glab release delete v1.0.0 # Delete releaseFull reference: glab release
Examples
Daily MR Review
# List MRs assigned to you
glab mr list --assignee=@me
# Review a specific MR
glab mr view 456
glab mr diff 456
glab mr approve 456Create Issue and Link MR
# Create issue
glab issue create --title "Bug: Login fails" --description "Description" --label bug
# Create MR that closes it
glab mr create --title "Fix login bug" --description "Closes #123"Monitor CI Pipeline
# Check current pipeline status
glab ci status
# Watch pipeline logs in real-time
glab ci trace
# Retry failed jobs
glab ci retrySee common-workflows.md for more examples.
Advanced Usage
JSON Output for Scripting
# Get JSON output
glab issue list --output json
# Process with jq
glab mr list --output json | jq '.[] | "\(.iid): \(.title)"'GitLab API Access
For operations not covered by glab commands:
# Make authenticated API request
glab api projects/:id/issues
# POST request
glab api projects/:id/issues -X POST -f title="Issue" -f description="Text"
# Process response
glab api projects/:id | jq '.star_count'Full reference: glab api
Aliases for Frequent Operations
# Create shortcuts
glab alias set mrs 'mr list --assignee=@me'
glab alias set issues 'issue list --assignee=@me'
glab alias set pipelines 'ci list'
# Use them
glab mrs
glab issues
glab pipelinesConfiguration
# View configuration
glab config get
# Set default editor
glab config set editor vim
# Set default Git protocol
glab config set git_protocol sshConfiguration stored in ~/.config/glab-cli/config.yml
Model Guidance
This skill wraps an official CLI. A fast, lightweight model is sufficient.
Troubleshooting
# Check authentication
glab auth status
# Re-authenticate
glab auth login
# Enable debug logging
DEBUG=1 glab issue list
# Check glab version
glab versionOfficial Documentation
- GitLab CLI Manual: https://docs.gitlab.com/cli/
- GitLab CLI Repository: https://gitlab.com/gitlab-org/cli
- GitLab API Documentation: https://docs.gitlab.com/ee/api/
- GitLab CI/CD: https://docs.gitlab.com/ee/ci/
Summary
The GitLab skill uses the official glab CLI with a Python wrapper for markdown-formatted output on read/view commands.
Quick start:
- Install:
brew install glab(or equivalent for your OS) - Authenticate:
glab auth login - Verify:
python scripts/gitlab.py check - Read:
python scripts/gitlab.py issues list --repo GROUP/REPO - Write:
glab issue create,glab mr create, etc. (useglabdirectly)
For detailed command reference, use glab <command> --help or visit https://docs.gitlab.com/cli/.