gitlab-ci
npx machina-cli add skill grandcamel/GitLab-Assistant-Skills/gitlab-ci --openclawCI/CD Pipeline Skill
CI/CD pipeline operations for GitLab using the glab CLI.
Quick Reference
| Operation | Command | Risk |
|---|---|---|
| View status | glab ci status | - |
| View pipeline | glab ci view | - |
| List pipelines | glab ci list | - |
| Run pipeline | glab ci run | ⚠️ |
| Get pipeline JSON | glab ci get | - |
| Retry job | glab ci retry <job-id> | ⚠️ |
| Trace job | glab ci trace <job-id> | - |
| Download artifacts | glab ci artifact | - |
| Lint CI config | glab ci lint | - |
| Delete pipeline | glab ci delete <id> | ⚠️⚠️ |
Risk Legend: - Safe | ⚠️ Caution | ⚠️⚠️ Warning | ⚠️⚠️⚠️ Danger
When to Use This Skill
ALWAYS use when:
- User wants to check pipeline/build status
- User mentions "CI", "CD", "pipeline", "build", "job", "deploy"
- User wants to trigger or retry builds
- User wants to view job logs
NEVER use when:
- User wants to manage CI/CD variables (use gitlab-variable instead)
- User wants to manage schedules (use gitlab-schedule skill)
Available Commands
View Pipeline Status
glab ci status [options]
Options:
| Flag | Description |
|---|---|
-b, --branch=<branch> | Check status for specific branch |
-l, --live | Show status in real-time (updates automatically) |
-c, --compact | Show compact view |
Examples:
# View current branch pipeline status
glab ci status
# View status for specific branch
glab ci status --branch=main
# Watch status live (updates in real-time)
glab ci status --live
# Compact view
glab ci status --compact
Interactive Pipeline View
glab ci view [options]
Options:
| Flag | Description |
|---|---|
-b, --branch=<branch> | View pipeline for specific branch/tag |
-p, --pipeline-id=<id> | View specific pipeline by ID |
-w, --web | Open pipeline in browser |
Keyboard shortcuts in view mode:
| Key | Action |
|---|---|
Esc or q | Close logs or return to pipeline |
Ctrl+R or Ctrl+P | Run, retry, or play a job |
Tab / Arrow keys | Navigate |
Enter | Confirm selection |
Ctrl+D | Cancel job / Quit view |
Examples:
# Interactive view for current branch
glab ci view
# View specific branch pipeline
glab ci view --branch=feature/new
# View specific pipeline ID
glab ci view --pipeline-id=12345
# Open in browser
glab ci view --web
List Pipelines
glab ci list [options]
Options:
| Flag | Description |
|---|---|
-b, --branch=<branch> | Filter by branch |
--status=<status> | Filter by status: running, pending, success, failed, canceled, skipped |
--all | List all pipelines (not just default page) |
-P, --per-page=<n> | Items per page |
Examples:
# List recent pipelines
glab ci list
# List pipelines for branch
glab ci list --branch=main
# List failed pipelines
glab ci list --status=failed
# List all running pipelines
glab ci list --status=running --all
Run/Trigger Pipeline
glab ci run [options]
Options:
| Flag | Description |
|---|---|
-b, --branch=<ref> | Branch or tag to run pipeline on |
--variables=<vars> | CI variables as key=value pairs (comma-separated) |
Examples:
# Run pipeline for current branch
glab ci run
# Run pipeline for specific branch
glab ci run --branch=main
# Run with CI variables
glab ci run --variables="DEPLOY_ENV=staging,DEBUG=true"
# Run for a tag
glab ci run --branch=v1.2.3
Get Pipeline JSON
glab ci get [options]
Get JSON representation of a pipeline.
Options:
| Flag | Description |
|---|---|
-b, --branch=<branch> | Get pipeline for specific branch |
-p, --pipeline-id=<id> | Get specific pipeline by ID |
Examples:
# Get current branch pipeline
glab ci get
# Get specific pipeline
glab ci get --pipeline-id=12345
# Pipe to jq for processing
glab ci get | jq '.status'
Retry Job
glab ci retry <job-id>
Retry a failed CI job.
Examples:
# Retry specific job
glab ci retry 456789
Trace Job Logs
glab ci trace <job-id> [options]
View job logs in real-time.
Examples:
# Trace job output
glab ci trace 456789
Download Artifacts
glab ci artifact [options]
Download artifacts from the last pipeline.
Options:
| Flag | Description |
|---|---|
-b, --branch=<branch> | Download from specific branch |
-j, --job=<job-name> | Download from specific job |
-p, --path=<path> | Download to specific path |
Examples:
# Download all artifacts from last pipeline
glab ci artifact
# Download from specific job
glab ci artifact --job=build
# Download to specific directory
glab ci artifact --path=./artifacts/
Lint CI Configuration
glab ci lint [file]
Validate .gitlab-ci.yml file.
Examples:
# Lint default .gitlab-ci.yml
glab ci lint
# Lint specific file
glab ci lint path/to/.gitlab-ci.yml
Delete Pipeline
glab ci delete <pipeline-id>
Warning: This permanently deletes the pipeline and its jobs.
Common Workflows
Workflow 1: Check and Fix Failed Pipeline
# 1. Check current status
glab ci status
# 2. View failed pipeline interactively
glab ci view
# 3. Find failed job and view logs (in interactive view)
# Press arrow keys to select job, Enter to view logs
# 4. Retry the failed job
glab ci retry <job-id>
# 5. Watch the retry
glab ci status --live
Workflow 2: Trigger Deployment
# 1. Ensure tests pass
glab ci status --branch=main
# 2. Trigger deployment pipeline with variables
glab ci run --branch=main --variables="DEPLOY_ENV=production"
# 3. Monitor deployment
glab ci status --live
Workflow 3: Debug CI Configuration
# 1. Lint your CI config
glab ci lint
# 2. If valid, run a test pipeline
glab ci run
# 3. Watch the results
glab ci view
Workflow 4: Download Build Artifacts
# 1. Check pipeline succeeded
glab ci status --branch=release
# 2. Download artifacts from build job
glab ci artifact --branch=release --job=build --path=./dist/
Pipeline Status Reference
| Status | Meaning |
|---|---|
running | Pipeline is currently executing |
pending | Pipeline is waiting to run |
success | All jobs passed |
failed | One or more jobs failed |
canceled | Pipeline was manually canceled |
skipped | Pipeline was skipped |
manual | Waiting for manual trigger |
scheduled | Scheduled to run later |
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| Authentication failed | Invalid/expired token | Run glab auth login |
| Pipeline not found | No pipeline for branch | Check branch name or run glab ci run |
| Job stuck pending | No runners available | Check runner configuration |
| Lint fails | Invalid YAML syntax | Fix syntax errors in .gitlab-ci.yml |
| Cannot retry | Job not in retryable state | Wait for current run or cancel first |
Related Documentation
Source
git clone https://github.com/grandcamel/GitLab-Assistant-Skills/blob/main/skills/gitlab-ci/SKILL.mdView on GitHub Overview
Manage GitLab CI/CD pipelines with the glab CLI. This skill covers viewing pipeline status and pipelines, triggering runs, retrying jobs, tracing logs, downloading artifacts, and linting CI configs. It enables fast, scriptable CI control from chat to keep pipelines running smoothly.
How This Skill Works
The skill maps user intent to glab ci commands (status, view, list, run, get, retry, trace, artifact, lint). It uses common flags like --branch, --pipeline-id, --web, and --variables to tailor actions. Results are summarized for quick decision making and can be opened in a browser when --web is used.
When to Use It
- When you want to check the current pipeline or build status for a branch or project
- When you need to trigger a new pipeline or re-run an existing one
- When you want to view or retry specific jobs by ID and inspect logs
- When you need to trace job logs or download artifacts from a completed pipeline
- When you want to lint/validate the CI configuration before or after changes
Quick Start
- Step 1: Identify the action you need (status, view, list, run, retry, lint)
- Step 2: Run the corresponding glab ci command (e.g., glab ci status, glab ci run --branch=main)
- Step 3: Refine with flags (--branch, --pipeline-id, --web, --variables) and review output
Best Practices
- Use glab ci status --live for real-time updates during active deployments
- Filter views with --branch or --pipeline-id to target the exact pipeline
- Run with --variables to inject environment-specific values safely
- Retry only after addressing root causes and use glab ci lint to pre-check CI config
- Validate CI config with glab ci lint before committing to avoid broken pipelines
Example Use Cases
- View the current branch pipeline status: glab ci status --branch=main
- Trigger a pipeline on the main branch: glab ci run --branch=main
- Retry a failed job by ID: glab ci retry 6789
- Open a specific pipeline in the browser: glab ci view --pipeline-id=12345 --web
- Lint the CI configuration before pushing: glab ci lint