Claude Code GitLab CI/CD
Scopri come integrare Claude Code nel tuo flusso di lavoro di sviluppo con GitLab CI/CD
Claude Code per GitLab CI/CD è attualmente in beta. Le funzionalità e le caratteristiche potrebbero evolversi mentre raffiniamo l’esperienza.
Questa integrazione è mantenuta da GitLab. Per supporto, consulta la seguente issue di GitLab.
Questa integrazione è costruita sopra la CLI e SDK di Claude Code, abilitando l’uso programmatico di Claude nei tuoi job CI/CD e nei flussi di lavoro di automazione personalizzati.
Perché usare Claude Code con GitLab?
- Creazione istantanea di MR: Descrivi quello che ti serve, e Claude propone una MR completa con modifiche e spiegazione
- Implementazione automatizzata: Trasforma le issue in codice funzionante con un singolo comando o menzione
- Consapevole del progetto: Claude segue le tue linee guida
CLAUDE.md
e i pattern di codice esistenti - Configurazione semplice: Aggiungi un job a
.gitlab-ci.yml
e una variabile CI/CD mascherata - Pronto per l’enterprise: Scegli Anthropic API, AWS Bedrock, o Google Vertex AI per soddisfare le esigenze di residenza dei dati e approvvigionamento
- Sicuro per impostazione predefinita: Funziona nei tuoi runner GitLab con la tua protezione dei branch e approvazioni
Come funziona
Claude Code usa GitLab CI/CD per eseguire attività AI in job isolati e committare i risultati tramite MR:
-
Orchestrazione guidata da eventi: GitLab ascolta i trigger che scegli (ad esempio, un commento che menziona
@claude
in una issue, MR, o thread di revisione). Il job raccoglie il contesto dal thread e repository, costruisce prompt da quell’input, ed esegue Claude Code. -
Astrazione del provider: Usa il provider che si adatta al tuo ambiente:
- Anthropic API (SaaS)
- AWS Bedrock (accesso basato su IAM, opzioni cross-region)
- Google Vertex AI (nativo GCP, Workload Identity Federation)
-
Esecuzione sandboxed: Ogni interazione viene eseguita in un container con regole di rete e filesystem rigorose. Claude Code applica permessi con scope del workspace per limitare le scritture. Ogni modifica fluisce attraverso una MR così i revisori vedono il diff e le approvazioni si applicano ancora.
Scegli endpoint regionali per ridurre la latenza e soddisfare i requisiti di sovranità dei dati utilizzando accordi cloud esistenti.
Cosa può fare Claude?
Claude Code abilita potenti flussi di lavoro CI/CD che trasformano il modo in cui lavori con il codice:
- Creare e aggiornare MR da descrizioni di issue o commenti
- Analizzare regressioni delle prestazioni e proporre ottimizzazioni
- Implementare funzionalità direttamente in un branch, poi aprire una MR
- Correggere bug e regressioni identificati da test o commenti
- Rispondere a commenti di follow-up per iterare sui cambiamenti richiesti
Configurazione
Configurazione rapida
Il modo più veloce per iniziare è aggiungere un job minimale al tuo .gitlab-ci.yml
e impostare la tua chiave API come variabile mascherata.
-
Aggiungi una variabile CI/CD mascherata
- Vai a Settings → CI/CD → Variables
- Aggiungi
ANTHROPIC_API_KEY
(mascherata, protetta se necessario)
-
Aggiungi un job Claude a
.gitlab-ci.yml
Dopo aver aggiunto il job e la tua variabile ANTHROPIC_API_KEY
, testa eseguendo il job manualmente da CI/CD → Pipelines, o triggeralo da una MR per far proporre a Claude aggiornamenti in un branch e aprire una MR se necessario.
Per eseguire su AWS Bedrock o Google Vertex AI invece dell’API Anthropic, vedi la sezione Uso con AWS Bedrock & Google Vertex AI sotto per l’autenticazione e la configurazione dell’ambiente.
Configurazione manuale (raccomandata per produzione)
Se preferisci una configurazione più controllata o hai bisogno di provider enterprise:
-
Configura l’accesso al provider:
- Anthropic API: Crea e memorizza
ANTHROPIC_API_KEY
come variabile CI/CD mascherata - AWS Bedrock: Configura GitLab → AWS OIDC e crea un ruolo IAM per Bedrock
- Google Vertex AI: Configura Workload Identity Federation per GitLab → GCP
- Anthropic API: Crea e memorizza
-
Aggiungi credenziali del progetto per operazioni API GitLab:
- Usa
CI_JOB_TOKEN
per impostazione predefinita, o crea un Project Access Token con scopeapi
- Memorizza come
GITLAB_ACCESS_TOKEN
(mascherato) se usi un PAT
- Usa
-
Aggiungi il job Claude a
.gitlab-ci.yml
(vedi esempi sotto) -
(Opzionale) Abilita trigger guidati da menzioni:
- Aggiungi un webhook del progetto per “Comments (notes)” al tuo event listener (se ne usi uno)
- Fai chiamare al listener l’API trigger della pipeline con variabili come
AI_FLOW_INPUT
eAI_FLOW_CONTEXT
quando un commento contiene@claude
Esempi di casi d’uso
Trasforma issue in MR
In un commento di issue:
Claude analizza l’issue e la codebase, scrive modifiche in un branch, e apre una MR per la revisione.
Ottieni aiuto per l’implementazione
In una discussione MR:
Claude propone modifiche, aggiunge codice con caching appropriato, e aggiorna la MR.
Correggi bug rapidamente
In un commento di issue o MR:
Claude localizza il bug, implementa una correzione, e aggiorna il branch o apre una nuova MR.
Uso con AWS Bedrock & Google Vertex AI
Per ambienti enterprise, puoi eseguire Claude Code interamente sulla tua infrastruttura cloud con la stessa esperienza sviluppatore.
Prerequisiti
Prima di configurare Claude Code con AWS Bedrock, hai bisogno di:
- Un account AWS con accesso Amazon Bedrock ai modelli Claude desiderati
- GitLab configurato come provider di identità OIDC in AWS IAM
- Un ruolo IAM con permessi Bedrock e una policy di trust limitata al tuo progetto/refs GitLab
- Variabili CI/CD GitLab per l’assunzione del ruolo:
AWS_ROLE_TO_ASSUME
(ARN del ruolo)AWS_REGION
(regione Bedrock)
Istruzioni di configurazione
Configura AWS per permettere ai job CI GitLab di assumere un ruolo IAM tramite OIDC (nessuna chiave statica).
Configurazione richiesta:
- Abilita Amazon Bedrock e richiedi accesso ai tuoi modelli Claude target
- Crea un provider OIDC IAM per GitLab se non già presente
- Crea un ruolo IAM fidato dal provider OIDC GitLab, limitato al tuo progetto e refs protetti
- Allega permessi con privilegi minimi per le API invoke di Bedrock
Valori richiesti da memorizzare nelle variabili CI/CD:
AWS_ROLE_TO_ASSUME
AWS_REGION
Aggiungi variabili in Settings → CI/CD → Variables:
Usa l’esempio job AWS Bedrock sopra per scambiare il token job GitLab per credenziali AWS temporanee a runtime.
Prerequisiti
Prima di configurare Claude Code con AWS Bedrock, hai bisogno di:
- Un account AWS con accesso Amazon Bedrock ai modelli Claude desiderati
- GitLab configurato come provider di identità OIDC in AWS IAM
- Un ruolo IAM con permessi Bedrock e una policy di trust limitata al tuo progetto/refs GitLab
- Variabili CI/CD GitLab per l’assunzione del ruolo:
AWS_ROLE_TO_ASSUME
(ARN del ruolo)AWS_REGION
(regione Bedrock)
Istruzioni di configurazione
Configura AWS per permettere ai job CI GitLab di assumere un ruolo IAM tramite OIDC (nessuna chiave statica).
Configurazione richiesta:
- Abilita Amazon Bedrock e richiedi accesso ai tuoi modelli Claude target
- Crea un provider OIDC IAM per GitLab se non già presente
- Crea un ruolo IAM fidato dal provider OIDC GitLab, limitato al tuo progetto e refs protetti
- Allega permessi con privilegi minimi per le API invoke di Bedrock
Valori richiesti da memorizzare nelle variabili CI/CD:
AWS_ROLE_TO_ASSUME
AWS_REGION
Aggiungi variabili in Settings → CI/CD → Variables:
Usa l’esempio job AWS Bedrock sopra per scambiare il token job GitLab per credenziali AWS temporanee a runtime.
Prerequisiti
Prima di configurare Claude Code con Google Vertex AI, hai bisogno di:
- Un progetto Google Cloud con:
- API Vertex AI abilitata
- Workload Identity Federation configurata per fidarsi di GitLab OIDC
- Un account di servizio dedicato con solo i ruoli Vertex AI richiesti
- Variabili CI/CD GitLab per WIF:
GCP_WORKLOAD_IDENTITY_PROVIDER
(nome risorsa completo)GCP_SERVICE_ACCOUNT
(email account di servizio)
Istruzioni di configurazione
Configura Google Cloud per permettere ai job CI GitLab di impersonare un account di servizio tramite Workload Identity Federation.
Configurazione richiesta:
- Abilita IAM Credentials API, STS API, e Vertex AI API
- Crea un Workload Identity Pool e provider per GitLab OIDC
- Crea un account di servizio dedicato con ruoli Vertex AI
- Concedi al principal WIF il permesso di impersonare l’account di servizio
Valori richiesti da memorizzare nelle variabili CI/CD:
GCP_WORKLOAD_IDENTITY_PROVIDER
GCP_SERVICE_ACCOUNT
Aggiungi variabili in Settings → CI/CD → Variables:
Usa l’esempio job Google Vertex AI sopra per autenticarti senza memorizzare chiavi.
Esempi di configurazione
Sotto ci sono snippet pronti all’uso che puoi adattare alla tua pipeline.
.gitlab-ci.yml base (Anthropic API)
Esempio job AWS Bedrock (OIDC)
Prerequisiti:
- Amazon Bedrock abilitato con accesso ai tuoi modelli Claude scelti
- GitLab OIDC configurato in AWS con un ruolo che si fida del tuo progetto GitLab e refs
- Ruolo IAM con permessi Bedrock (privilegi minimi raccomandati)
Variabili CI/CD richieste:
AWS_ROLE_TO_ASSUME
: ARN del ruolo IAM per l’accesso BedrockAWS_REGION
: Regione Bedrock (ad esempio,us-west-2
)
Gli ID modello per Bedrock includono prefissi specifici della regione e suffissi di versione (ad esempio, us.anthropic.claude-3-7-sonnet-20250219-v1:0
). Passa il modello desiderato tramite la configurazione del tuo job o prompt se il tuo flusso di lavoro lo supporta.
Esempio job Google Vertex AI (Workload Identity Federation)
Prerequisiti:
- API Vertex AI abilitata nel tuo progetto GCP
- Workload Identity Federation configurata per fidarsi di GitLab OIDC
- Un account di servizio con permessi Vertex AI
Variabili CI/CD richieste:
GCP_WORKLOAD_IDENTITY_PROVIDER
: Nome risorsa provider completoGCP_SERVICE_ACCOUNT
: Email account di servizioCLOUD_ML_REGION
: Regione Vertex (ad esempio,us-east5
)
Con Workload Identity Federation, non hai bisogno di memorizzare chiavi dell’account di servizio. Usa condizioni di trust specifiche del repository e account di servizio con privilegi minimi.
Migliori pratiche
Configurazione CLAUDE.md
Crea un file CLAUDE.md
alla radice del repository per definire standard di codifica, criteri di revisione, e regole specifiche del progetto. Claude legge questo file durante le esecuzioni e segue le tue convenzioni quando propone modifiche.
Considerazioni di sicurezza
Non committare mai chiavi API o credenziali cloud nel tuo repository! Usa sempre le variabili CI/CD GitLab:
- Aggiungi
ANTHROPIC_API_KEY
come variabile mascherata (e proteggila se necessario) - Usa OIDC specifico del provider dove possibile (nessuna chiave a lunga durata)
- Limita i permessi del job e l’egress di rete
- Rivedi le MR di Claude come qualsiasi altro contributore
Ottimizzazione delle prestazioni
- Mantieni
CLAUDE.md
focalizzato e conciso - Fornisci descrizioni chiare di issue/MR per ridurre le iterazioni
- Configura timeout del job sensati per evitare esecuzioni fuori controllo
- Cacheizza npm e installazioni di pacchetti nei runner dove possibile
Costi CI
Quando usi Claude Code con GitLab CI/CD, sii consapevole dei costi associati:
-
Tempo runner GitLab:
- Claude viene eseguito sui tuoi runner GitLab e consume minuti di compute
- Vedi la fatturazione runner del tuo piano GitLab per dettagli
-
Costi API:
- Ogni interazione Claude consume token basati sulla dimensione del prompt e risposta
- L’uso dei token varia per complessità del task e dimensione della codebase
- Vedi prezzi Anthropic per dettagli
-
Suggerimenti per l’ottimizzazione dei costi:
- Usa comandi
@claude
specifici per ridurre turni non necessari - Imposta valori appropriati di
max_turns
e timeout del job - Limita la concorrenza per controllare le esecuzioni parallele
- Usa comandi
Sicurezza e governance
- Ogni job viene eseguito in un container isolato con accesso di rete limitato
- Le modifiche di Claude fluiscono attraverso MR così i revisori vedono ogni diff
- La protezione dei branch e le regole di approvazione si applicano al codice generato da AI
- Claude Code usa permessi con scope del workspace per limitare le scritture
- I costi rimangono sotto il tuo controllo perché porti le tue credenziali del provider
Risoluzione dei problemi
Claude non risponde ai comandi @claude
- Verifica che la tua pipeline sia triggerata (manualmente, evento MR, o tramite un listener/webhook evento note)
- Assicurati che le variabili CI/CD (
ANTHROPIC_API_KEY
o impostazioni provider cloud) siano presenti e non mascherate - Controlla che il commento contenga
@claude
(non/claude
) e che il tuo trigger di menzione sia configurato
Il job non può scrivere commenti o aprire MR
- Assicurati che
CI_JOB_TOKEN
abbia permessi sufficienti per il progetto, o usa un Project Access Token con scopeapi
- Controlla che lo strumento
mcp__gitlab
sia abilitato in--allowedTools
- Conferma che il job viene eseguito nel contesto della MR o abbia abbastanza contesto tramite variabili
AI_FLOW_*
Errori di autenticazione
- Per Anthropic API: Conferma che
ANTHROPIC_API_KEY
sia valida e non scaduta - Per Bedrock/Vertex: Verifica la configurazione OIDC/WIF, impersonazione del ruolo, e nomi dei segreti; conferma disponibilità regione e modello
Configurazione avanzata
Parametri e variabili comuni
Claude Code supporta questi input comunemente usati:
prompt
/prompt_file
:Fornisci istruzioni inline (-p
) o tramite un filemax_turns
: Limita il numero di iterazioni avanti e indietrotimeout_minutes
: Limita il tempo totale di esecuzioneANTHROPIC_API_KEY
: Richiesta per l’API Anthropic (non usata per Bedrock/Vertex)- Ambiente specifico del provider:
AWS_REGION
, variabili progetto/regione per Vertex
Flag e parametri esatti possono variare per versione di @anthropic-ai/claude-code
. Esegui claude --help
nel tuo job per vedere le opzioni supportate.
Personalizzazione del comportamento di Claude
Puoi guidare Claude in due modi principali:
- CLAUDE.md: Definisci standard di codifica, requisiti di sicurezza, e convenzioni del progetto. Claude legge questo durante le esecuzioni e segue le tue regole.
- Prompt personalizzati: Passa istruzioni specifiche del task tramite
prompt
/prompt_file
nel job. Usa prompt diversi per job diversi (ad esempio, revisione, implementazione, refactoring).