Reference guide for glab commands covering issues, merge requests, pipelines, releases, and CI/CD—includes common workflows and syntax examples
You have access to the glab CLI for GitLab operations. $ARGUMENTS
If there are authentication related errors, run: glab auth status
glab issue list [--assignee=@me] [--label=X] [--milestone=X] [--state=opened|closed|all]glab issue view <id> --commentsglab issue create --title "X" --description "X" [--label=X] [--assignee=X]glab issue close <id>glab issue update <id> [--title=X] [--description=X] [--label=X] [--assignee=X]glab issue note <id> --message "X" (add comment)glab mr list [--assignee=@me] [--reviewer=@me] [--state=opened|merged|closed|all] [--label=X]glab mr view <id> --commentsglab mr diff <id> (view changes)glab mr create --title "X" --description "X" [--source-branch=X] [--target-branch=X] [--related-issue=X]glab mr update <id> [--title=X] [--description=X] [--label=X] [--draft] [--ready]glab mr close <id>glab mr checkout <id> (switch to MR branch locally)glab mr approve <id>glab mr merge <id> [--squash] [--remove-source-branch]glab mr note <id> --message "X" (add comment)glab ci list (list recent pipelines)glab ci view [branch] (interactive pipeline viewer)glab ci status (current branch pipeline status)glab ci trace [job-id] (view job logs)glab pipeline run --branch <branch> (trigger pipeline)glab ci retry <job-id>glab ci cancel pipeline <id>glab ci cancel job <id>glab release listglab release view <tag>glab release create <tag> --notes "X"glab label list [-F json]glab milestone list [--state=active|closed]glab repo view (project metadata)glab api projects/:id/repository/commits (recent commits via API)glab api <endpoint> --method GET|POST|PUT|DELETEglab api graphql --field query='...'-R owner/repo or --repo - target different repository (supports GROUP/NAMESPACE/REPO format)--hostname - target specific GitLab instance-F json or --output json - machine-readable output (prefer this for parsing)-w or --web - open in browser--per-page N - control result count (default 30)--page N - paginationglab issue list --label=<feature-label> -F jsonglab mr list --label=<feature-label> -F jsonglab ci status --branch <source-branch>glab mr diff <id> or checkout and read filesglab mr view <id> --comments (understand context and discussion)glab mr diff <id> (see all changes)glab mr checkout <id> (get code locally)glab ci statusglab mr note <id> --message "..."glab ci list -F json (find failed pipeline)glab ci view (identify failed job)glab ci trace <job-id> (read full logs)glab release list (find previous tag)glab api projects/:id/repository/compare?from=<old>&to=<new> (commits between)glab mr list --state=merged --updated-after=<date> -F jsonglab issue list --state=closed --updated-after=<date> -F jsonglab issue list --assignee=@me --state=opened -F jsonglab mr list --assignee=@me --state=opened -F jsonglab mr list --reviewer=@me --state=opened -F jsonWhen reviewing ticket status against codebase:
glab issue list --assignee=@me --state=opened -F jsongit log --oneline --grep="<issue-id>"glab mr list --state=merged | grep "<issue-id>"-F json when you need to parse output programmaticallyglab api command can access any GitLab REST endpoint for advanced queries