โ† Back to Git & GitHub
Git & GitHub by @vince-winkintel

gitlab-cli-skills

Use when working with GitLab CLI (glab) commands

0
Source Code

GitLab CLI Skills

Comprehensive GitLab CLI (glab) command reference and workflows.

Quick start

# First time setup
glab auth login

# Common operations
glab mr create --fill              # Create MR from current branch
glab issue create                  # Create issue
glab ci view                       # View pipeline status
glab repo view --web              # Open repo in browser

Skill organization

This skill routes to specialized sub-skills by GitLab domain:

Core Workflows:

  • glab-mr - Merge requests: create, review, approve, merge
  • glab-issue - Issues: create, list, update, close, comment
  • glab-ci - CI/CD: pipelines, jobs, logs, artifacts
  • glab-repo - Repositories: clone, create, fork, manage

Project Management:

  • glab-milestone - Release planning and milestone tracking
  • glab-iteration - Sprint/iteration management
  • glab-label - Label management and organization
  • glab-release - Software releases and versioning

Authentication & Config:

  • glab-auth - Login, logout, Docker registry auth
  • glab-config - CLI configuration and defaults
  • glab-ssh-key - SSH key management
  • glab-gpg-key - GPG keys for commit signing
  • glab-token - Personal and project access tokens

CI/CD Management:

  • glab-job - Individual job operations
  • glab-schedule - Scheduled pipelines and cron jobs
  • glab-variable - CI/CD variables and secrets
  • glab-securefile - Secure files for pipelines
  • glab-runner-controller - Runner controller and token management (EXPERIMENTAL, admin-only)

Collaboration:

  • glab-user - User profiles and information
  • glab-snippet - Code snippets (GitLab gists)
  • glab-incident - Incident management

Advanced:

  • glab-api - Direct REST API calls
  • glab-cluster - Kubernetes cluster integration
  • glab-deploy-key - Deploy keys for automation
  • glab-stack - Stacked/dependent merge requests
  • glab-opentofu - Terraform/OpenTofu state management

Utilities:

  • glab-alias - Custom command aliases
  • glab-completion - Shell autocompletion
  • glab-help - Command help and documentation
  • glab-version - Version information
  • glab-check-update - Update checker
  • glab-changelog - Changelog generation
  • glab-attestation - Software supply chain security
  • glab-duo - GitLab Duo AI assistant
  • glab-mcp - Model Context Protocol server for AI assistant integration (EXPERIMENTAL)

When to use glab vs web UI

Use glab when:

  • Automating GitLab operations in scripts
  • Working in terminal-centric workflows
  • Batch operations (multiple MRs/issues)
  • Integration with other CLI tools
  • CI/CD pipeline workflows
  • Faster navigation without browser context switching

Use web UI when:

  • Complex diff review with inline comments
  • Visual merge conflict resolution
  • Configuring repo settings and permissions
  • Advanced search/filtering across projects
  • Reviewing security scanning results
  • Managing group/instance-level settings

Common workflows

Daily development

# Start work on issue
glab issue view 123
git checkout -b 123-feature-name

# Create MR when ready
glab mr create --fill --draft

# Mark ready for review
glab mr update --ready

# Merge after approval
glab mr merge --when-pipeline-succeeds --remove-source-branch

Code review

# List your review queue
glab mr list --reviewer=@me --state=opened

# Review an MR
glab mr checkout 456
glab mr diff
npm test

# Approve
glab mr approve 456
glab mr note 456 -m "LGTM! Nice work on the error handling."

CI/CD debugging

# Check pipeline status
glab ci status

# View failed jobs
glab ci view

# Get job logs
glab ci trace <job-id>

# Retry failed job
glab ci retry <job-id>

Decision Trees

"Should I create an MR or work on an issue first?"

Need to track work?
โ”œโ”€ Yes โ†’ Create issue first (glab issue create)
โ”‚         Then: glab mr for <issue-id>
โ””โ”€ No โ†’ Direct MR (glab mr create --fill)

Use glab issue create + glab mr for when:

  • Work needs discussion/approval before coding
  • Tracking feature requests or bugs
  • Sprint planning and assignment
  • Want issue to auto-close when MR merges

Use glab mr create directly when:

  • Quick fixes or typos
  • Working from existing issue
  • Hotfixes or urgent changes

"Which CI command should I use?"

What do you need?
โ”œโ”€ Overall pipeline status โ†’ glab ci status
โ”œโ”€ Visual pipeline view โ†’ glab ci view
โ”œโ”€ Specific job logs โ†’ glab ci trace <job-id>
โ”œโ”€ Download build artifacts โ†’ glab ci artifact <ref> <job-name>
โ”œโ”€ Validate config file โ†’ glab ci lint
โ”œโ”€ Trigger new run โ†’ glab ci run
โ””โ”€ List all pipelines โ†’ glab ci list

Quick reference:

  • Pipeline-level: glab ci status, glab ci view, glab ci run
  • Job-level: glab ci trace, glab job retry, glab job view
  • Artifacts: glab ci artifact (by pipeline) or job artifacts via glab job

"Clone or fork?"

What's your relationship to the repo?
โ”œโ”€ You have write access โ†’ glab repo clone group/project
โ”œโ”€ Contributing to someone else's project:
โ”‚   โ”œโ”€ One-time contribution โ†’ glab repo fork + work + MR
โ”‚   โ””โ”€ Ongoing contributions โ†’ glab repo fork, then sync regularly
โ””โ”€ Just reading/exploring โ†’ glab repo clone (or view --web)

Fork when:

  • You don't have write access to the original repo
  • Contributing to open source projects
  • Experimenting without affecting the original
  • Need your own copy for long-term work

Clone when:

  • You're a project member with write access
  • Working on organization/team repositories
  • No need for a personal copy

"Project vs group labels?"

Where should the label live?
โ”œโ”€ Used across multiple projects โ†’ glab label create --group <group>
โ””โ”€ Specific to one project โ†’ glab label create (in project directory)

Group-level labels:

  • Consistent labeling across organization
  • Examples: priority::high, type::bug, status::blocked
  • Managed centrally, inherited by projects

Project-level labels:

  • Project-specific workflows
  • Examples: needs-ux-review, deploy-to-staging
  • Managed by project maintainers

Related Skills

MR and Issue workflows:

  • Start with glab-issue to create/track work
  • Use glab-mr to create MR that closes issue
  • Script: scripts/create-mr-from-issue.sh automates this

CI/CD debugging:

  • Use glab-ci for pipeline-level operations
  • Use glab-job for individual job operations
  • Script: scripts/ci-debug.sh for quick failure diagnosis

Repository operations:

  • Use glab-repo for repository management
  • Use glab-auth for authentication setup
  • Script: scripts/sync-fork.sh for fork synchronization

Configuration:

  • Use glab-auth for initial authentication
  • Use glab-config to set defaults and preferences
  • Use glab-alias for custom shortcuts