Claude Code GitLab CI/CD
Aprenda sobre a integração do Claude Code em seu fluxo de trabalho de desenvolvimento com GitLab CI/CD
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.md
e padrões de código existentes - Configuração simples: Adicione um job ao
.gitlab-ci.yml
e uma variável mascarada de CI/CD - Pronto para empresa: Escolha Anthropic 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
@claude
em 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:
- Anthropic API (SaaS)
- AWS Bedrock (acesso baseado em IAM, opções entre regiões)
- Google Vertex AI (nativo do GCP, Workload Identity Federation)
-
Execução em sandbox: Cada interação executa em um contêiner com regras rígidas 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.
Escolha endpoints regionais para reduzir latência e atender requisitos de soberania de dados enquanto usa acordos de nuvem existentes.
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 mascarada de CI/CD
- Vá para Settings → CI/CD → Variables
- Adicione
ANTHROPIC_API_KEY
(mascarada, protegida conforme necessário)
-
Adicione um job Claude ao
.gitlab-ci.yml
Após adicionar o job e sua variável 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 Anthropic 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ê preferir uma configuração mais controlada ou precisar de provedores empresariais:
-
Configure acesso ao provedor:
- Anthropic API: Crie e armazene
ANTHROPIC_API_KEY
como uma variável mascarada de CI/CD - AWS Bedrock: Configure GitLab → AWS OIDC e crie uma função IAM para Bedrock
- Google Vertex AI: Configure Workload Identity Federation para GitLab → GCP
- Anthropic API: Crie e armazene
-
Adicione credenciais do projeto para operações da API GitLab:
- Use
CI_JOB_TOKEN
por 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 do projeto para “Comments (notes)” ao seu ouvinte de eventos (se você usar um)
- Faça o ouvinte chamar a API de gatilho de pipeline com variáveis como
AI_FLOW_INPUT
eAI_FLOW_CONTEXT
quando um comentário contém@claude
Exemplos de casos de uso
Transformar issues em MRs
Em um comentário de issue:
Claude analisa a issue e codebase, escreve mudanças em um branch e abre um MR para revisão.
Obter ajuda de implementação
Em uma discussão de MR:
Claude propõe mudanças, adiciona código com cache apropriado e atualiza o MR.
Corrigir bugs rapidamente
Em um comentário de issue ou MR:
Claude localiza o bug, implementa uma correção e atualiza o branch ou abre um novo 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 de 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 de 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
Valores necessários para armazenar em variáveis de CI/CD:
AWS_ROLE_TO_ASSUME
AWS_REGION
Adicione variáveis em Settings → CI/CD → Variables:
Use o exemplo de job AWS Bedrock acima para trocar o token de job GitLab por credenciais AWS temporárias em tempo de execução.
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 de 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 de 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
Valores necessários para armazenar em variáveis de CI/CD:
AWS_ROLE_TO_ASSUME
AWS_REGION
Adicione variáveis em Settings → CI/CD → Variables:
Use o exemplo de job AWS Bedrock acima para trocar o token de job GitLab por credenciais AWS temporárias em tempo de execução.
Pré-requisitos
Antes de configurar Claude Code com Google Vertex AI, você precisa:
- Um projeto Google Cloud com:
- API Vertex AI habilitada
- Workload Identity Federation configurado para confiar no OIDC GitLab
- Uma conta de serviço dedicada com apenas as funções Vertex AI necessárias
- Variáveis de CI/CD GitLab para WIF:
GCP_WORKLOAD_IDENTITY_PROVIDER
(nome completo do recurso)GCP_SERVICE_ACCOUNT
(email da conta de serviço)
Instruções de configuração
Configure Google Cloud para permitir que jobs de CI GitLab personifiquem uma conta de serviço via Workload Identity Federation.
Configuração necessária:
- Habilite IAM Credentials API, STS API e Vertex AI API
- Crie um Workload Identity Pool e provedor para OIDC GitLab
- Crie uma conta de serviço dedicada com funções Vertex AI
- Conceda ao principal WIF permissão para personificar a conta de serviço
Valores necessários para armazenar em variáveis de CI/CD:
GCP_WORKLOAD_IDENTITY_PROVIDER
GCP_SERVICE_ACCOUNT
Adicione variáveis em Settings → CI/CD → Variables:
Use o exemplo de job Google Vertex AI acima para autenticar sem armazenar chaves.
Exemplos de configuração
Abaixo estão trechos prontos para uso que você pode adaptar ao seu pipeline.
.gitlab-ci.yml básico (Anthropic API)
Exemplo de job AWS Bedrock (OIDC)
Pré-requisitos:
- Amazon Bedrock habilitado com acesso aos seus modelos Claude escolhidos
- 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)
Variáveis de CI/CD necessárias:
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 em seu projeto GCP
- Workload Identity Federation configurado para confiar no OIDC GitLab
- Uma conta de serviço com permissões Vertex AI
Variáveis de CI/CD necessárias:
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 arquivo CLAUDE.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 em seu repositório! Sempre use variáveis de CI/CD do GitLab:
- Adicione
ANTHROPIC_API_KEY
como 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 saída de rede
- Revise MRs do Claude como qualquer outro contribuidor
Otimizando performance
- Mantenha
CLAUDE.md
focado 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 do codebase
- Veja preços Anthropic para detalhes
-
Dicas de otimização de custos:
- Use comandos
@claude
específicos para reduzir turnos desnecessários - Defina valores apropriados de
max_turns
e 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 respondendo a comandos @claude
- Verifique se seu pipeline está sendo acionado (manualmente, evento MR, ou via um ouvinte de evento de nota/webhook)
- Certifique-se de que variáveis de CI/CD (
ANTHROPIC_API_KEY
ou 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_TOKEN
tem permissões suficientes para o projeto, ou use um Project Access Token com escopoapi
- Verifique se a ferramenta
mcp__gitlab
está 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 Anthropic 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 um arquivomax_turns
: Limite o número de iterações de ida e voltatimeout_minutes
: Limite o tempo total de execuçãoANTHROPIC_API_KEY
: Necessário para a Anthropic 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 de @anthropic-ai/claude-code
. Execute claude --help
em 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 do projeto. Claude lê isso durante execuções e segue suas regras.
- Prompts personalizados: Passe instruções específicas da tarefa via
prompt
/prompt_file
no job. Use prompts diferentes para jobs diferentes (por exemplo, revisar, implementar, refatorar).