Claude Code para GitLab CI/CD está atualmente em beta. Recursos e funcionalidades podem evoluir conforme refinamos a experiência.Esta integração é mantida pelo GitLab. Para suporte, consulte a seguinte issue do GitLab.
Esta integração é construída sobre o Claude Code CLI e SDK, permitindo o uso programático do Claude em seus jobs de CI/CD e fluxos de trabalho de automação personalizados.
Por que usar Claude Code com GitLab?
- Criação instantânea de MR: Descreva o que você precisa, e Claude propõe um MR completo com mudanças e explicação
- Implementação automatizada: Transforme issues em código funcional com um único comando ou menção
- Consciente do projeto: Claude segue suas diretrizes do
CLAUDE.mde padrões de código existentes - Configuração simples: Adicione um job ao
.gitlab-ci.ymle uma variável CI/CD mascarada - Pronto para empresa: Escolha Claude API, AWS Bedrock, ou Google Vertex AI para atender necessidades de residência de dados e aquisição
- Seguro por padrão: Executa em seus runners do GitLab com sua proteção de branch e aprovações
Como funciona
Claude Code usa GitLab CI/CD para executar tarefas de IA em jobs isolados e confirmar resultados de volta via MRs:-
Orquestração orientada por eventos: GitLab escuta seus gatilhos escolhidos (por exemplo, um comentário que menciona
@claudeem uma issue, MR, ou thread de revisão). O job coleta contexto da thread e repositório, constrói prompts a partir dessa entrada, e executa Claude Code. -
Abstração de provedor: Use o provedor que se adequa ao seu ambiente:
- Claude API (SaaS)
- AWS Bedrock (acesso baseado em IAM, opções cross-region)
- Google Vertex AI (nativo do GCP, Workload Identity Federation)
- Execução em sandbox: Cada interação executa em um contêiner com regras rigorosas de rede e sistema de arquivos. Claude Code impõe permissões com escopo de workspace para restringir escritas. Toda mudança flui através de um MR para que revisores vejam o diff e aprovações ainda se apliquem.
O que Claude pode fazer?
Claude Code permite fluxos de trabalho poderosos de CI/CD que transformam como você trabalha com código:- Criar e atualizar MRs a partir de descrições de issues ou comentários
- Analisar regressões de performance e propor otimizações
- Implementar recursos diretamente em um branch, depois abrir um MR
- Corrigir bugs e regressões identificados por testes ou comentários
- Responder a comentários de acompanhamento para iterar sobre mudanças solicitadas
Configuração
Configuração rápida
A maneira mais rápida de começar é adicionar um job mínimo ao seu.gitlab-ci.yml e definir sua chave API como uma variável mascarada.
-
Adicione uma variável CI/CD mascarada
- Vá para Settings → CI/CD → Variables
- Adicione
ANTHROPIC_API_KEY(mascarada, protegida conforme necessário)
-
Adicione um job Claude ao
.gitlab-ci.yml
ANTHROPIC_API_KEY, teste executando o job manualmente de CI/CD → Pipelines, ou acione-o de um MR para deixar Claude propor atualizações em um branch e abrir um MR se necessário.
Para executar no AWS Bedrock ou Google Vertex AI em vez da Claude API, consulte a seção Usando com AWS Bedrock & Google Vertex AI abaixo para configuração de autenticação e ambiente.
Configuração manual (recomendada para produção)
Se você prefere uma configuração mais controlada ou precisa de provedores empresariais:-
Configure acesso ao provedor:
- Claude API: Crie e armazene
ANTHROPIC_API_KEYcomo uma variável CI/CD mascarada - AWS Bedrock: Configure GitLab → AWS OIDC e crie uma função IAM para Bedrock
- Google Vertex AI: Configure Workload Identity Federation para GitLab → GCP
- Claude API: Crie e armazene
-
Adicione credenciais do projeto para operações da API GitLab:
- Use
CI_JOB_TOKENpor padrão, ou crie um Project Access Token com escopoapi - Armazene como
GITLAB_ACCESS_TOKEN(mascarado) se usar um PAT
- Use
-
Adicione o job Claude ao
.gitlab-ci.yml(veja exemplos abaixo) -
(Opcional) Habilite gatilhos orientados por menção:
- Adicione um webhook de projeto para “Comments (notes)” ao seu listener de eventos (se você usar um)
- Faça o listener chamar a API de gatilho de pipeline com variáveis como
AI_FLOW_INPUTeAI_FLOW_CONTEXTquando um comentário contém@claude
Casos de uso de exemplo
Transformar issues em MRs
Em um comentário de issue:Obter ajuda de implementação
Em uma discussão de MR:Corrigir bugs rapidamente
Em um comentário de issue ou MR:Usando com AWS Bedrock & Google Vertex AI
Para ambientes empresariais, você pode executar Claude Code inteiramente em sua infraestrutura de nuvem com a mesma experiência de desenvolvedor.Pré-requisitos
Antes de configurar Claude Code com AWS Bedrock, você precisa:- Uma conta AWS com acesso ao Amazon Bedrock aos modelos Claude desejados
- GitLab configurado como um provedor de identidade OIDC no AWS IAM
- Uma função IAM com permissões Bedrock e uma política de confiança restrita ao seu projeto/refs do GitLab
- Variáveis CI/CD do GitLab para assunção de função:
AWS_ROLE_TO_ASSUME(ARN da função)AWS_REGION(região do Bedrock)
Instruções de configuração
Configure AWS para permitir que jobs CI do GitLab assumam uma função IAM via OIDC (sem chaves estáticas).Configuração necessária:- Habilite Amazon Bedrock e solicite acesso aos seus modelos Claude alvo
- Crie um provedor OIDC IAM para GitLab se ainda não estiver presente
- Crie uma função IAM confiada pelo provedor OIDC GitLab, restrita ao seu projeto e refs protegidos
- Anexe permissões de menor privilégio para APIs de invocação Bedrock
AWS_ROLE_TO_ASSUMEAWS_REGION
Exemplos de configuração
Abaixo estão trechos prontos para uso que você pode adaptar ao seu pipeline..gitlab-ci.yml básico (Claude API)
Exemplo de job AWS Bedrock (OIDC)
Pré-requisitos:- Amazon Bedrock habilitado com acesso ao(s) seu(s) modelo(s) Claude escolhido(s)
- GitLab OIDC configurado no AWS com uma função que confia no seu projeto e refs GitLab
- Função IAM com permissões Bedrock (menor privilégio recomendado)
AWS_ROLE_TO_ASSUME: ARN da função IAM para acesso BedrockAWS_REGION: Região Bedrock (por exemplo,us-west-2)
IDs de modelo para Bedrock incluem prefixos específicos de região e sufixos de versão (por exemplo,
us.anthropic.claude-3-7-sonnet-20250219-v1:0). Passe o modelo desejado via sua configuração de job ou prompt se seu fluxo de trabalho suportar.Exemplo de job Google Vertex AI (Workload Identity Federation)
Pré-requisitos:- API Vertex AI habilitada no seu projeto GCP
- Workload Identity Federation configurado para confiar no OIDC GitLab
- Uma conta de serviço com permissões Vertex AI
GCP_WORKLOAD_IDENTITY_PROVIDER: Nome completo do recurso do provedorGCP_SERVICE_ACCOUNT: Email da conta de serviçoCLOUD_ML_REGION: Região Vertex (por exemplo,us-east5)
Com Workload Identity Federation, você não precisa armazenar chaves de conta de serviço. Use condições de confiança específicas do repositório e contas de serviço de menor privilégio.
Melhores práticas
Configuração CLAUDE.md
Crie um arquivoCLAUDE.md na raiz do repositório para definir padrões de codificação, critérios de revisão, e regras específicas do projeto. Claude lê este arquivo durante execuções e segue suas convenções ao propor mudanças.
Considerações de segurança
Nunca confirme chaves API ou credenciais de nuvem no seu repositório! Sempre use variáveis CI/CD do GitLab:- Adicione
ANTHROPIC_API_KEYcomo uma variável mascarada (e proteja-a se necessário) - Use OIDC específico do provedor onde possível (sem chaves de longa duração)
- Limite permissões de job e egresso de rede
- Revise MRs do Claude como qualquer outro contribuidor
Otimizando performance
- Mantenha
CLAUDE.mdfocado e conciso - Forneça descrições claras de issue/MR para reduzir iterações
- Configure timeouts sensatos de job para evitar execuções descontroladas
- Cache instalações npm e de pacotes em runners onde possível
Custos de CI
Ao usar Claude Code com GitLab CI/CD, esteja ciente dos custos associados:-
Tempo de GitLab Runner:
- Claude executa em seus runners GitLab e consome minutos de computação
- Veja o faturamento de runner do seu plano GitLab para detalhes
-
Custos de API:
- Cada interação Claude consome tokens baseados no tamanho do prompt e resposta
- Uso de tokens varia por complexidade da tarefa e tamanho da codebase
- Veja preços Anthropic para detalhes
-
Dicas de otimização de custos:
- Use comandos
@claudeespecíficos para reduzir turnos desnecessários - Defina valores apropriados de
max_turnse timeout de job - Limite concorrência para controlar execuções paralelas
- Use comandos
Segurança e governança
- Cada job executa em um contêiner isolado com acesso de rede restrito
- Mudanças do Claude fluem através de MRs para que revisores vejam cada diff
- Regras de proteção de branch e aprovação se aplicam ao código gerado por IA
- Claude Code usa permissões com escopo de workspace para restringir escritas
- Custos permanecem sob seu controle porque você traz suas próprias credenciais de provedor
Solução de problemas
Claude não responde a comandos @claude
- Verifique se seu pipeline está sendo acionado (manualmente, evento MR, ou via listener/webhook de evento de nota)
- Certifique-se de que variáveis CI/CD (
ANTHROPIC_API_KEYou configurações de provedor de nuvem) estão presentes e não mascaradas - Verifique se o comentário contém
@claude(não/claude) e que seu gatilho de menção está configurado
Job não consegue escrever comentários ou abrir MRs
- Certifique-se de que
CI_JOB_TOKENtem permissões suficientes para o projeto, ou use um Project Access Token com escopoapi - Verifique se a ferramenta
mcp__gitlabestá habilitada em--allowedTools - Confirme que o job executa no contexto do MR ou tem contexto suficiente via variáveis
AI_FLOW_*
Erros de autenticação
- Para Claude API: Confirme que
ANTHROPIC_API_KEYé válida e não expirou - Para Bedrock/Vertex: Verifique configuração OIDC/WIF, personificação de função, e nomes de segredos; confirme disponibilidade de região e modelo
Configuração avançada
Parâmetros e variáveis comuns
Claude Code suporta essas entradas comumente usadas:prompt/prompt_file: Forneça instruções inline (-p) ou via arquivomax_turns: Limite o número de iterações de ida e voltatimeout_minutes: Limite tempo total de execuçãoANTHROPIC_API_KEY: Necessário para Claude API (não usado para Bedrock/Vertex)- Ambiente específico do provedor:
AWS_REGION, variáveis de projeto/região para Vertex
Flags e parâmetros exatos podem variar por versão do
@anthropic-ai/claude-code. Execute claude --help no seu job para ver opções suportadas.Personalizando comportamento do Claude
Você pode guiar Claude de duas maneiras principais:- CLAUDE.md: Defina padrões de codificação, requisitos de segurança, e convenções de projeto. Claude lê isso durante execuções e segue suas regras.
- Prompts personalizados: Passe instruções específicas da tarefa via
prompt/prompt_fileno job. Use prompts diferentes para jobs diferentes (por exemplo, revisar, implementar, refatorar).