Claude Code für GitLab CI/CD befindet sich derzeit in der Beta-Phase. Funktionen und Funktionalität können sich weiterentwickeln, während wir die Erfahrung verfeinern.Diese Integration wird von GitLab gepflegt. Für Support siehe das folgende GitLab-Problem.
Diese Integration basiert auf der Claude Code CLI und SDK und ermöglicht die programmgesteuerte Nutzung von Claude in Ihren CI/CD-Jobs und benutzerdefinierten Automatisierungs-Workflows.
Warum Claude Code mit GitLab verwenden?
- Sofortige MR-Erstellung: Beschreiben Sie, was Sie benötigen, und Claude schlägt einen vollständigen MR mit Änderungen und Erklärung vor
- Automatisierte Implementierung: Verwandeln Sie Probleme mit einem einzigen Befehl oder einer Erwähnung in funktionierenden Code
- Projektbewusst: Claude folgt Ihren
CLAUDE.md-Richtlinien und vorhandenen Code-Mustern - Einfaches Setup: Fügen Sie einen Job zu
.gitlab-ci.ymlund eine maskierte CI/CD-Variable hinzu - Enterprise-ready: Wählen Sie Claude API, AWS Bedrock oder Google Vertex AI, um Anforderungen an Datenresidenz und Beschaffung zu erfüllen
- Standardmäßig sicher: Läuft in Ihren GitLab-Runnern mit Ihrem Branch-Schutz und Genehmigungen
Wie es funktioniert
Claude Code verwendet GitLab CI/CD, um KI-Aufgaben in isolierten Jobs auszuführen und Ergebnisse über MRs zurückzuschreiben:-
Ereignisgesteuerte Orchestrierung: GitLab lauscht auf Ihre gewählten Trigger (zum Beispiel ein Kommentar, der
@claudein einem Problem, MR oder Review-Thread erwähnt). Der Job sammelt Kontext aus dem Thread und Repository, erstellt Prompts aus dieser Eingabe und führt Claude Code aus. -
Provider-Abstraktion: Verwenden Sie den Provider, der zu Ihrer Umgebung passt:
- Claude API (SaaS)
- AWS Bedrock (IAM-basierter Zugriff, regionsübergreifende Optionen)
- Google Vertex AI (GCP-nativ, Workload Identity Federation)
- Sandboxed-Ausführung: Jede Interaktion läuft in einem Container mit strikten Netzwerk- und Dateisystem-Regeln. Claude Code erzwingt Workspace-bezogene Berechtigungen, um Schreibvorgänge einzuschränken. Jede Änderung fließt durch einen MR, damit Reviewer den Diff sehen und Genehmigungen weiterhin gelten.
Was kann Claude tun?
Claude Code ermöglicht leistungsstarke CI/CD-Workflows, die verändern, wie Sie mit Code arbeiten:- Erstellen und aktualisieren Sie MRs aus Problembeschreibungen oder Kommentaren
- Analysieren Sie Performance-Regressionstests und schlagen Sie Optimierungen vor
- Implementieren Sie Funktionen direkt in einem Branch und öffnen Sie dann einen MR
- Beheben Sie Fehler und Regressionstests, die durch Tests oder Kommentare identifiziert wurden
- Antworten Sie auf Folgekommentare, um auf angeforderte Änderungen zu iterieren
Setup
Schnelles Setup
Der schnellste Weg zum Einstieg ist, einen minimalen Job zu Ihrer.gitlab-ci.yml hinzuzufügen und Ihren API-Schlüssel als maskierte Variable festzulegen.
-
Fügen Sie eine maskierte CI/CD-Variable hinzu
- Gehen Sie zu Einstellungen → CI/CD → Variablen
- Fügen Sie
ANTHROPIC_API_KEYhinzu (maskiert, bei Bedarf geschützt)
-
Fügen Sie einen Claude-Job zu
.gitlab-ci.ymlhinzu
ANTHROPIC_API_KEY-Variable testen Sie, indem Sie den Job manuell von CI/CD → Pipelines ausführen, oder lösen Sie ihn von einem MR aus, um Claude Updates in einem Branch vorzuschlagen und bei Bedarf einen MR zu öffnen.
Um stattdessen auf AWS Bedrock oder Google Vertex AI auszuführen, siehe den Abschnitt Verwendung mit AWS Bedrock & Google Vertex AI unten für Authentifizierung und Umgebungssetup.
Manuelles Setup (empfohlen für Produktion)
Wenn Sie ein kontrolliertes Setup bevorzugen oder Enterprise-Provider benötigen:-
Konfigurieren Sie Provider-Zugriff:
- Claude API: Erstellen und speichern Sie
ANTHROPIC_API_KEYals maskierte CI/CD-Variable - AWS Bedrock: Konfigurieren Sie GitLab → AWS OIDC und erstellen Sie eine IAM-Rolle für Bedrock
- Google Vertex AI: Konfigurieren Sie Workload Identity Federation für GitLab → GCP
- Claude API: Erstellen und speichern Sie
-
Fügen Sie Projektanmeldedaten für GitLab API-Operationen hinzu:
- Verwenden Sie standardmäßig
CI_JOB_TOKEN, oder erstellen Sie ein Project Access Token mitapi-Bereich - Speichern Sie als
GITLAB_ACCESS_TOKEN(maskiert), wenn Sie ein PAT verwenden
- Verwenden Sie standardmäßig
-
Fügen Sie den Claude-Job zu
.gitlab-ci.ymlhinzu (siehe Beispiele unten) -
(Optional) Aktivieren Sie Mention-gesteuerte Trigger:
- Fügen Sie einen Projekt-Webhook für “Kommentare (Notizen)” zu Ihrem Event-Listener hinzu (falls Sie einen verwenden)
- Lassen Sie den Listener die Pipeline-Trigger-API mit Variablen wie
AI_FLOW_INPUTundAI_FLOW_CONTEXTaufrufen, wenn ein Kommentar@claudeenthält
Beispiel-Anwendungsfälle
Verwandeln Sie Probleme in MRs
In einem Problemkommentar:Erhalten Sie Implementierungshilfe
In einer MR-Diskussion:Beheben Sie Fehler schnell
In einem Problem- oder MR-Kommentar:Verwendung mit AWS Bedrock & Google Vertex AI
Für Enterprise-Umgebungen können Sie Claude Code vollständig auf Ihrer Cloud-Infrastruktur mit der gleichen Entwicklererfahrung ausführen.Voraussetzungen
Bevor Sie Claude Code mit AWS Bedrock einrichten, benötigen Sie:- Ein AWS-Konto mit Amazon Bedrock-Zugriff auf die gewünschten Claude-Modelle
- GitLab als OIDC-Identitätsanbieter in AWS IAM konfiguriert
- Eine IAM-Rolle mit Bedrock-Berechtigungen und einer Vertrauensrichtlinie, die auf Ihr GitLab-Projekt/Refs beschränkt ist
- GitLab CI/CD-Variablen für die Rollenübernahme:
AWS_ROLE_TO_ASSUME(Rollen-ARN)AWS_REGION(Bedrock-Region)
Setup-Anweisungen
Konfigurieren Sie AWS, um GitLab CI-Jobs zu ermöglichen, eine IAM-Rolle über OIDC anzunehmen (keine statischen Schlüssel).Erforderliches Setup:- Aktivieren Sie Amazon Bedrock und fordern Sie Zugriff auf Ihre Ziel-Claude-Modelle an
- Erstellen Sie einen IAM OIDC-Provider für GitLab, falls nicht bereits vorhanden
- Erstellen Sie eine IAM-Rolle, der der GitLab OIDC-Provider vertraut, beschränkt auf Ihr Projekt und geschützte Refs
- Fügen Sie Least-Privilege-Berechtigungen für Bedrock-Invoke-APIs an
AWS_ROLE_TO_ASSUMEAWS_REGION
Konfigurationsbeispiele
Nachfolgend finden Sie einsatzbereite Snippets, die Sie an Ihre Pipeline anpassen können.Basis .gitlab-ci.yml (Claude API)
AWS Bedrock-Job-Beispiel (OIDC)
Voraussetzungen:- Amazon Bedrock aktiviert mit Zugriff auf Ihr gewähltes Claude-Modell(e)
- GitLab OIDC in AWS konfiguriert mit einer Rolle, die Ihr GitLab-Projekt und Refs vertraut
- IAM-Rolle mit Bedrock-Berechtigungen (Least Privilege empfohlen)
AWS_ROLE_TO_ASSUME: ARN der IAM-Rolle für Bedrock-ZugriffAWS_REGION: Bedrock-Region (zum Beispielus-west-2)
Modell-IDs für Bedrock enthalten regionsspezifische Präfixe und Versionssuffixe (zum Beispiel
us.anthropic.claude-sonnet-4-5-20250929-v1:0). Übergeben Sie das gewünschte Modell über Ihre Job-Konfiguration oder den Prompt, wenn Ihr Workflow dies unterstützt.Google Vertex AI-Job-Beispiel (Workload Identity Federation)
Voraussetzungen:- Vertex AI API in Ihrem GCP-Projekt aktiviert
- Workload Identity Federation konfiguriert, um GitLab OIDC zu vertrauen
- Ein Service-Konto mit Vertex AI-Berechtigungen
GCP_WORKLOAD_IDENTITY_PROVIDER: Vollständiger Provider-RessourcennameGCP_SERVICE_ACCOUNT: Service-Konto-E-MailCLOUD_ML_REGION: Vertex-Region (zum Beispielus-east5)
Mit Workload Identity Federation müssen Sie keine Service-Konto-Schlüssel speichern. Verwenden Sie Repository-spezifische Vertrauensbedingungen und Least-Privilege-Service-Konten.
Best Practices
CLAUDE.md-Konfiguration
Erstellen Sie eineCLAUDE.md-Datei im Repository-Root, um Coding-Standards, Review-Kriterien und projektspezifische Regeln zu definieren. Claude liest diese Datei während der Ausführung und folgt Ihren Konventionen bei der Vorschlag von Änderungen.
Sicherheitsüberlegungen
Committen Sie niemals API-Schlüssel oder Cloud-Anmeldedaten in Ihr Repository! Verwenden Sie immer GitLab CI/CD-Variablen:- Fügen Sie
ANTHROPIC_API_KEYals maskierte Variable hinzu (und schützen Sie sie bei Bedarf) - Verwenden Sie Provider-spezifisches OIDC, wo möglich (keine langlebigen Schlüssel)
- Begrenzen Sie Job-Berechtigungen und Netzwerk-Egress
- Überprüfen Sie Claudes MRs wie jeden anderen Contributor
Optimierung der Leistung
- Halten Sie
CLAUDE.mdfokussiert und prägnant - Geben Sie klare Problem-/MR-Beschreibungen an, um Iterationen zu reduzieren
- Konfigurieren Sie angemessene Job-Timeouts, um runaway Runs zu vermeiden
- Cachen Sie npm und Paketinstallationen in Runnern, wo möglich
CI-Kosten
Bei der Verwendung von Claude Code mit GitLab CI/CD sollten Sie sich der damit verbundenen Kosten bewusst sein:-
GitLab Runner-Zeit:
- Claude läuft auf Ihren GitLab-Runnern und verbraucht Compute-Minuten
- Siehe Ihre GitLab-Plan-Runner-Abrechnung für Details
-
API-Kosten:
- Jede Claude-Interaktion verbraucht Token basierend auf Prompt- und Antwortgröße
- Die Token-Nutzung variiert je nach Aufgabenkomplexität und Codebasis-Größe
- Siehe Anthropic-Preise für Details
-
Tipps zur Kostenoptimierung:
- Verwenden Sie spezifische
@claude-Befehle, um unnötige Turns zu reduzieren - Legen Sie angemessene
max_turns- und Job-Timeout-Werte fest - Begrenzen Sie die Parallelität, um parallele Runs zu kontrollieren
- Verwenden Sie spezifische
Sicherheit und Governance
- Jeder Job läuft in einem isolierten Container mit eingeschränktem Netzwerkzugriff
- Claudes Änderungen fließen durch MRs, damit Reviewer jeden Diff sehen
- Branch-Schutz- und Genehmigungsregeln gelten für KI-generierte Code
- Claude Code verwendet Workspace-bezogene Berechtigungen, um Schreibvorgänge einzuschränken
- Kosten bleiben unter Ihrer Kontrolle, da Sie Ihre eigenen Provider-Anmeldedaten mitbringen
Fehlerbehebung
Claude antwortet nicht auf @claude-Befehle
- Überprüfen Sie, ob Ihre Pipeline ausgelöst wird (manuell, MR-Ereignis oder über einen Note-Event-Listener/Webhook)
- Stellen Sie sicher, dass CI/CD-Variablen (
ANTHROPIC_API_KEYoder Cloud-Provider-Einstellungen) vorhanden und unmaskiert sind - Überprüfen Sie, dass der Kommentar
@claudeenthält (nicht/claude) und dass Ihr Mention-Trigger konfiguriert ist
Job kann keine Kommentare schreiben oder MRs öffnen
- Stellen Sie sicher, dass
CI_JOB_TOKENausreichende Berechtigungen für das Projekt hat, oder verwenden Sie ein Project Access Token mitapi-Bereich - Überprüfen Sie, dass das
mcp__gitlab-Tool in--allowedToolsaktiviert ist - Bestätigen Sie, dass der Job im Kontext des MR läuft oder über
AI_FLOW_*-Variablen genug Kontext hat
Authentifizierungsfehler
- Für Claude API: Bestätigen Sie, dass
ANTHROPIC_API_KEYgültig und nicht abgelaufen ist - Für Bedrock/Vertex: Überprüfen Sie OIDC/WIF-Konfiguration, Rollenimitierung und Geheimnisnamen; bestätigen Sie Region und Modellverfügbarkeit
Erweiterte Konfiguration
Häufig verwendete Parameter und Variablen
Claude Code unterstützt diese häufig verwendeten Eingaben:prompt/prompt_file: Geben Sie Anweisungen inline (-p) oder über eine Datei anmax_turns: Begrenzen Sie die Anzahl der Hin- und Her-Iterationentimeout_minutes: Begrenzen Sie die GesamtausführungszeitANTHROPIC_API_KEY: Erforderlich für die Claude API (nicht für Bedrock/Vertex verwendet)- Provider-spezifische Umgebung:
AWS_REGION, Projekt-/Regionsvariablen für Vertex
Genaue Flags und Parameter können je nach Version von
@anthropic-ai/claude-code variieren. Führen Sie claude --help in Ihrem Job aus, um unterstützte Optionen zu sehen.Anpassung von Claudes Verhalten
Sie können Claude auf zwei Hauptwegen lenken:- CLAUDE.md: Definieren Sie Coding-Standards, Sicherheitsanforderungen und Projektkonventionen. Claude liest dies während der Ausführung und folgt Ihren Regeln.
- Benutzerdefinierte Prompts: Übergeben Sie aufgabenspezifische Anweisungen über
prompt/prompt_fileim Job. Verwenden Sie unterschiedliche Prompts für verschiedene Jobs (zum Beispiel Review, Implementierung, Refactoring).