--- name: glab description: Interact with GitLab using the `glab` CLI. Use when Claude needs to work with GitLab merge requests, CI/CD pipelines, issues, releases, or make API requests. Supports gitlab.com and self-hosted instances. --- # GitLab Skill Use the `glab` CLI to interact with GitLab. Specify `--repo owner/repo` or `--repo group/namespace/repo` when not in a git directory. Also accepts full URLs. ## Merge Requests List open merge requests: ```bash glab mr list --repo owner/repo ``` View MR details: ```bash glab mr view 55 --repo owner/repo ``` Create an MR from current branch: ```bash glab mr create --fill --target-branch main ``` Approve, merge, or check out: ```bash glab mr approve 55 glab mr merge 55 glab mr checkout 55 ``` View MR diff: ```bash glab mr diff 55 ``` ## CI/CD Pipelines Check pipeline status for current branch: ```bash glab ci status ``` View pipeline interactively (navigate jobs, view logs): ```bash glab ci view ``` List recent pipelines: ```bash glab ci list --repo owner/repo ``` Trace job logs in real time: ```bash glab ci trace glab ci trace 224356863 # specific job ID glab ci trace lint # by job name ``` Retry a failed pipeline: ```bash glab ci retry ``` Validate `.gitlab-ci.yml`: ```bash glab ci lint ``` ## Issues List and view issues: ```bash glab issue list --repo owner/repo glab issue view 42 ``` Create an issue: ```bash glab issue create --title "Bug report" --label bug ``` Add a comment: ```bash glab issue note 42 -m "This is fixed in !55" ``` ## API for Advanced Queries Use `glab api` for endpoints not covered by subcommands. Supports REST and GraphQL. Get project releases: ```bash glab api projects/:fullpath/releases ``` Get MR with specific fields (pipe to jq): ```bash glab api projects/owner/repo/merge_requests/55 | jq '.title, .state, .author.username' ``` Paginate through all issues: ```bash glab api issues --paginate ``` GraphQL query: ```bash glab api graphql -f query=' query { currentUser { username } } ' ``` ## JSON Output Pipe to `jq` for filtering: ```bash glab mr list --repo owner/repo | jq -r '.[] | "\(.iid): \(.title)"' ``` ## Variables and Releases Manage CI/CD variables: ```bash glab variable list glab variable set MY_VAR "value" glab variable get MY_VAR ``` Create a release: ```bash glab release create v1.0.0 --notes "Release notes here" ``` ## Key Differences from GitHub CLI | Concept | GitHub (`gh`) | GitLab (`glab`) | | ------------------------- | ------------- | -------------------------------------- | | Pull/Merge Request | `gh pr` | `glab mr` | | CI runs | `gh run` | `glab ci` | | Repo path format | `owner/repo` | `owner/repo` or `group/namespace/repo` | | Interactive pipeline view | N/A | `glab ci view` |