# Gitlab CI

> Use when working with GitLab using the glab CLI tool. Currently provides guidance for CI/CD pipelines including checking pipeline status, viewing job logs, and working with branches and tags.

- Skill: `majiayu000/gitlab-ci` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/gitlab-ci`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/gitlab-ci/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/gitlab-ci

---


# GitLab CI/CD with glab CLI

## Core Principle

**Always use `--branch` to specify branches or tags, never use pipeline IDs directly.**

## Common Workflows

### 1. Check Pipeline Status

```bash
# Check current branch
glab ci status

# Check specific branch or tag
glab ci status --branch=<branch-or-tag>

# Compact view
glab ci status --compact --branch=<branch-or-tag>
```

### 2. Get Pipeline Details

```bash
# Get pipeline info for a branch/tag
glab ci get --branch=<branch-or-tag>

# Include job IDs and details
glab ci get --branch=<branch-or-tag> --with-job-details
```

### 3. View Job Logs

```bash
# By job name (recommended when you know the name)
glab ci trace <job-name> --branch=<branch-or-tag>

# By job ID (use after getting job IDs from `glab ci get --with-job-details`)
glab ci trace <job-id>
```

**Example workflow:**
```bash
# 1. Check status and see job names
glab ci status --branch=staging

# 2. Get logs for a specific failed job
glab ci trace check-pending-migrations --branch=staging
```

### 4. List Pipelines

```bash
# List recent pipelines (overview only)
glab ci list

# Filter by ref (branch/tag)
glab ci list --ref=<branch-or-tag>

# Filter by status
glab ci list --status=failed
```

## Important Notes

- **NEVER use `glab ci view`** - it only works interactively. Use `glab ci status --live` for monitoring or `glab ci trace` for job logs instead
- Job names and job IDs work with `glab ci trace`, but pipeline IDs do not
- Always specify `--repo` if working with a repository other than the current directory
- Use `--branch` for both branches and tags (the flag name is `--branch` even for tags)

## Quick Reference

| Task | Command |
|------|---------|
| Pipeline status | `glab ci status --branch=<ref>` |
| Pipeline details | `glab ci get --branch=<ref>` |
| Job logs | `glab ci trace <job-name\|job-id> [--branch=<ref>]` |
| List pipelines | `glab ci list [--ref=<ref>]` |

