\
CONTEXT/academy
Lección 05 · ≈ 10 min

GitLab CI/CD

El mismo enfoque headless, ahora en un pipeline de GitLab.

GitLab CI/CD

Si tu equipo está en GitLab, la buena noticia es que ya sabes lo esencial: la integración se apoya en el mismo modo headless (claude -p) de las primeras lecciones. Cambia el envoltorio —un job de pipeline en vez de un workflow de Actions—, no el motor.

La integración de GitLab está en beta y la mantiene GitLab. Conceptualmente es idéntica: Claude corre en un job aislado de tu pipeline y devuelve los cambios vía una MR.

El setup, en dos pasos

  1. Variable enmascarada: en Settings → CI/CD → Variables, añade ANTHROPIC_API_KEY (masked, protegida si hace falta).
  2. Un job en .gitlab-ci.yml:
stages:
  - ai

claude:
  stage: ai
  image: node:24-alpine3.21
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
  before_script:
    - apk add --no-cache git curl bash
    - curl -fsSL https://claude.ai/install.sh | bash
  script:
    - >
      claude
      -p "${AI_FLOW_INPUT:-'Revisa esta MR e implementa los cambios pedidos'}"
      --permission-mode acceptEdits
      --allowedTools "Bash Read Edit Write mcp__gitlab"

Reconocerás cada pieza: claude -p (lección 1), --permission-mode acceptEdits y --allowedTools (lección 2). El mcp__gitlab es un servidor MCP (curso de MCP) que le da a Claude las tools de GitLab para comentar y abrir MRs.

Cómo se dispara

  • Manual: desde CI/CD → Pipelines.
  • Eventos de MR: con las rules de arriba.
  • Menciones @claude: con un listener de webhooks de "Comments (notes)" que llama a la API de triggers pasando contexto en variables AI_FLOW_* (AI_FLOW_INPUT, AI_FLOW_CONTEXT, AI_FLOW_EVENT).

Igual que en GitHub: en un comentario de issue o MR, @claude implementa esta feature, y Claude escribe los cambios en una rama y abre una MR.

Lo que se mantiene de todo el curso

  • CLAUDE.md guía su comportamiento también aquí.
  • Todo pasa por una MR: tus reglas de branch protection y aprobaciones siguen aplicando.
  • Mínimo privilegio en --allowedTools, coste acotado con max_turns y timeouts.
  • Soporta Claude API, Bedrock y Vertex AI con OIDC/WIF (sin claves de larga vida).

Cierre del curso

Has sacado a Claude del terminal: ahora trabaja en tu CI —GitHub o GitLab— revisando PRs, triando issues e implementando desde comentarios, sin que nadie abra una sesión. Tienes un workflow que corre Claude en tus pull requests.

El siguiente curso sube el último escalón: en vez de un Claude en tu pipeline, varios Claude a la vez, coordinados — agent teams, paralelización con worktrees y tareas programadas.

Fuente oficial: Claude Code GitLab CI/CD

¿Quieres llevar la cuenta de las lecciones que has terminado?

Entrar para guardar progreso