Claude Code para GitLab CI/CD está actualmente en beta. Las características y funcionalidades pueden evolucionar a medida que refinamos la experiencia.Esta integración es mantenida por GitLab. Para obtener soporte, consulta el siguiente problema de GitLab.
Esta integración se construye sobre la base de Claude Code CLI y SDK, permitiendo el uso programático de Claude en tus trabajos de CI/CD y flujos de trabajo de automatización personalizada.
¿Por qué usar Claude Code con GitLab?
- Creación instantánea de MR: Describe lo que necesitas y Claude propone un MR completo con cambios y explicación
- Implementación automatizada: Convierte problemas en código funcional con un único comando o mención
- Consciente del proyecto: Claude sigue tus directrices de
CLAUDE.mdy patrones de código existentes - Configuración simple: Agrega un trabajo a
.gitlab-ci.ymly una variable de CI/CD enmascarada - Listo para empresas: Elige Claude API, AWS Bedrock o Google Vertex AI para cumplir con requisitos de residencia de datos y adquisición
- Seguro por defecto: Se ejecuta en tus ejecutores de GitLab con tu protección de rama y aprobaciones
Cómo funciona
Claude Code utiliza GitLab CI/CD para ejecutar tareas de IA en trabajos aislados y confirmar resultados a través de MRs:-
Orquestación impulsada por eventos: GitLab escucha los disparadores que elijas (por ejemplo, un comentario que menciona
@claudeen un problema, MR o hilo de revisión). El trabajo recopila contexto del hilo y repositorio, construye indicaciones a partir de esa entrada y ejecuta Claude Code. -
Abstracción de proveedores: Utiliza el proveedor que se ajuste a tu entorno:
- Claude API (SaaS)
- AWS Bedrock (acceso basado en IAM, opciones entre regiones)
- Google Vertex AI (nativo de GCP, Federación de Identidad de Carga de Trabajo)
- Ejecución en sandbox: Cada interacción se ejecuta en un contenedor con reglas estrictas de red y sistema de archivos. Claude Code aplica permisos de ámbito de espacio de trabajo para restringir escrituras. Cada cambio fluye a través de un MR para que los revisores vean el diff y las aprobaciones sigan siendo aplicables.
¿Qué puede hacer Claude?
Claude Code habilita flujos de trabajo de CI/CD poderosos que transforman cómo trabajas con código:- Crear y actualizar MRs a partir de descripciones de problemas o comentarios
- Analizar regresiones de rendimiento y proponer optimizaciones
- Implementar características directamente en una rama, luego abrir un MR
- Corregir errores y regresiones identificados por pruebas o comentarios
- Responder a comentarios de seguimiento para iterar sobre cambios solicitados
Configuración
Configuración rápida
La forma más rápida de comenzar es agregar un trabajo mínimo a tu.gitlab-ci.yml y establecer tu clave de API como una variable enmascarada.
-
Agrega una variable de CI/CD enmascarada
- Ve a Configuración → CI/CD → Variables
- Agrega
ANTHROPIC_API_KEY(enmascarada, protegida según sea necesario)
-
Agrega un trabajo de Claude a
.gitlab-ci.yml
ANTHROPIC_API_KEY, prueba ejecutando el trabajo manualmente desde CI/CD → Pipelines, o actívalo desde un MR para permitir que Claude proponga actualizaciones en una rama y abra un MR si es necesario.
Para ejecutar en AWS Bedrock o Google Vertex AI en lugar de Claude API, consulta la sección Usar con AWS Bedrock y Google Vertex AI a continuación para la configuración de autenticación y entorno.
Configuración manual (recomendada para producción)
Si prefieres una configuración más controlada o necesitas proveedores empresariales:-
Configura el acceso del proveedor:
- Claude API: Crea y almacena
ANTHROPIC_API_KEYcomo una variable de CI/CD enmascarada - AWS Bedrock: Configura GitLab → AWS OIDC y crea un rol de IAM para Bedrock
- Google Vertex AI: Configura Federación de Identidad de Carga de Trabajo para GitLab → GCP
- Claude API: Crea y almacena
-
Agrega credenciales de proyecto para operaciones de API de GitLab:
- Utiliza
CI_JOB_TOKENpor defecto, o crea un Token de Acceso de Proyecto con alcanceapi - Almacena como
GITLAB_ACCESS_TOKEN(enmascarado) si utilizas un PAT
- Utiliza
-
Agrega el trabajo de Claude a
.gitlab-ci.yml(consulta los ejemplos a continuación) -
(Opcional) Habilita disparadores impulsados por menciones:
- Agrega un webhook de proyecto para “Comentarios (notas)” a tu escuchador de eventos (si utilizas uno)
- Haz que el escuchador llame a la API de disparo de pipeline con variables como
AI_FLOW_INPUTyAI_FLOW_CONTEXTcuando un comentario contiene@claude
Casos de uso de ejemplo
Convierte problemas en MRs
En un comentario de problema:Obtén ayuda de implementación
En una discusión de MR:Corrige errores rápidamente
En un comentario de problema o MR:Usar con AWS Bedrock y Google Vertex AI
Para entornos empresariales, puedes ejecutar Claude Code completamente en tu infraestructura de nube con la misma experiencia de desarrollador.- AWS Bedrock
- Google Vertex AI
Requisitos previos
Antes de configurar Claude Code con AWS Bedrock, necesitas:- Una cuenta de AWS con acceso a Amazon Bedrock para los modelos Claude deseados
- GitLab configurado como proveedor de identidad OIDC en AWS IAM
- Un rol de IAM con permisos de Bedrock y una política de confianza restringida a tu proyecto/refs de GitLab
- Variables de CI/CD de GitLab para asumir el rol:
AWS_ROLE_TO_ASSUME(ARN del rol)AWS_REGION(región de Bedrock)
Instrucciones de configuración
Configura AWS para permitir que los trabajos de CI de GitLab asuman un rol de IAM a través de OIDC (sin claves estáticas).Configuración requerida:- Habilita Amazon Bedrock y solicita acceso a tus modelos Claude objetivo
- Crea un proveedor OIDC de IAM para GitLab si aún no existe
- Crea un rol de IAM confiado por el proveedor OIDC de GitLab, restringido a tu proyecto y refs protegidas
- Adjunta permisos de menor privilegio para APIs de invocación de Bedrock
AWS_ROLE_TO_ASSUMEAWS_REGION
Ejemplos de configuración
A continuación se muestran fragmentos listos para usar que puedes adaptar a tu pipeline..gitlab-ci.yml básico (Claude API)
Ejemplo de trabajo de AWS Bedrock (OIDC)
Requisitos previos:- Amazon Bedrock habilitado con acceso a tus modelos Claude elegidos
- OIDC de GitLab configurado en AWS con un rol que confía en tu proyecto y refs de GitLab
- Rol de IAM con permisos de Bedrock (se recomienda menor privilegio)
AWS_ROLE_TO_ASSUME: ARN del rol de IAM para acceso a BedrockAWS_REGION: Región de Bedrock (por ejemplo,us-west-2)
Los IDs de modelo para Bedrock incluyen prefijos específicos de región y sufijos de versión (por ejemplo,
us.anthropic.claude-sonnet-4-5-20250929-v1:0). Pasa el modelo deseado a través de tu configuración de trabajo o indicación si tu flujo de trabajo lo admite.Ejemplo de trabajo de Google Vertex AI (Federación de Identidad de Carga de Trabajo)
Requisitos previos:- API de Vertex AI habilitada en tu proyecto de GCP
- Federación de Identidad de Carga de Trabajo configurada para confiar en OIDC de GitLab
- Una cuenta de servicio con permisos de Vertex AI
GCP_WORKLOAD_IDENTITY_PROVIDER: Nombre de recurso completo del proveedorGCP_SERVICE_ACCOUNT: Correo electrónico de la cuenta de servicioCLOUD_ML_REGION: Región de Vertex (por ejemplo,us-east5)
Con Federación de Identidad de Carga de Trabajo, no necesitas almacenar claves de cuenta de servicio. Utiliza condiciones de confianza específicas del repositorio y cuentas de servicio con menor privilegio.
Mejores prácticas
Configuración de CLAUDE.md
Crea un archivoCLAUDE.md en la raíz del repositorio para definir estándares de codificación, criterios de revisión y reglas específicas del proyecto. Claude lee este archivo durante las ejecuciones y sigue tus convenciones al proponer cambios.
Consideraciones de seguridad
¡Nunca confirmes claves de API o credenciales de nube en tu repositorio! Siempre utiliza variables de CI/CD de GitLab:- Agrega
ANTHROPIC_API_KEYcomo una variable enmascarada (y protégela si es necesario) - Utiliza OIDC específico del proveedor donde sea posible (sin claves de larga duración)
- Limita los permisos del trabajo y la salida de red
- Revisa los MRs de Claude como cualquier otro colaborador
Optimización del rendimiento
- Mantén
CLAUDE.mdenfocado y conciso - Proporciona descripciones claras de problemas/MR para reducir iteraciones
- Configura tiempos de espera de trabajo sensatos para evitar ejecuciones descontroladas
- Almacena en caché las instalaciones de npm y paquetes en ejecutores donde sea posible
Costos de CI
Cuando utilizas Claude Code con GitLab CI/CD, ten en cuenta los costos asociados:-
Tiempo del ejecutor de GitLab:
- Claude se ejecuta en tus ejecutores de GitLab y consume minutos de computación
- Consulta la facturación del ejecutor de tu plan de GitLab para obtener detalles
-
Costos de API:
- Cada interacción de Claude consume tokens basados en el tamaño de la indicación y respuesta
- El uso de tokens varía según la complejidad de la tarea y el tamaño de la base de código
- Consulta Precios de Anthropic para obtener detalles
-
Consejos de optimización de costos:
- Utiliza comandos específicos de
@claudepara reducir turnos innecesarios - Establece valores apropiados de
max_turnsy tiempo de espera del trabajo - Limita la concurrencia para controlar ejecuciones paralelas
- Utiliza comandos específicos de
Seguridad y gobernanza
- Cada trabajo se ejecuta en un contenedor aislado con acceso de red restringido
- Los cambios de Claude fluyen a través de MRs para que los revisores vean cada diff
- Las reglas de protección de rama y aprobación se aplican al código generado por IA
- Claude Code utiliza permisos de ámbito de espacio de trabajo para restringir escrituras
- Los costos permanecen bajo tu control porque traes tus propias credenciales de proveedor
Solución de problemas
Claude no responde a comandos @claude
- Verifica que tu pipeline se esté disparando (manualmente, evento de MR o a través de un escuchador de eventos de nota/webhook)
- Asegúrate de que las variables de CI/CD (
ANTHROPIC_API_KEYo configuración del proveedor de nube) estén presentes y sin enmascarar - Comprueba que el comentario contiene
@claude(no/claude) y que tu disparador de mención está configurado
El trabajo no puede escribir comentarios o abrir MRs
- Asegúrate de que
CI_JOB_TOKENtenga permisos suficientes para el proyecto, o utiliza un Token de Acceso de Proyecto con alcanceapi - Comprueba que la herramienta
mcp__gitlabesté habilitada en--allowedTools - Confirma que el trabajo se ejecuta en el contexto del MR o tiene suficiente contexto a través de variables
AI_FLOW_*
Errores de autenticación
- Para Claude API: Confirma que
ANTHROPIC_API_KEYsea válida y no haya expirado - Para Bedrock/Vertex: Verifica la configuración de OIDC/WIF, suplantación de rol y nombres de secretos; confirma la disponibilidad de región y modelo
Configuración avanzada
Parámetros y variables comunes
Claude Code admite estas entradas comúnmente utilizadas:prompt/prompt_file: Proporciona instrucciones en línea (-p) o a través de un archivomax_turns: Limita el número de iteraciones de ida y vueltatimeout_minutes: Limita el tiempo total de ejecuciónANTHROPIC_API_KEY: Requerido para Claude API (no se utiliza para Bedrock/Vertex)- Entorno específico del proveedor:
AWS_REGION, variables de proyecto/región para Vertex
Las banderas y parámetros exactos pueden variar según la versión de
@anthropic-ai/claude-code. Ejecuta claude --help en tu trabajo para ver las opciones admitidas.Personalización del comportamiento de Claude
Puedes guiar a Claude de dos formas principales:- CLAUDE.md: Define estándares de codificación, requisitos de seguridad y convenciones del proyecto. Claude lee esto durante las ejecuciones y sigue tus reglas.
- Indicaciones personalizadas: Pasa instrucciones específicas de la tarea a través de
prompt/prompt_fileen el trabajo. Utiliza diferentes indicaciones para diferentes trabajos (por ejemplo, revisión, implementación, refactorización).