Claude Code GitLab CI/CD
Erfahren Sie, wie Sie Claude Code in Ihren Entwicklungsworkflow mit GitLab CI/CD integrieren
Claude Code für GitLab CI/CD befindet sich derzeit in der Beta-Phase. Features 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 Issue.
Diese Integration basiert auf der Claude Code CLI und SDK und ermöglicht die programmatische 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 eine vollständige MR mit Änderungen und Erklärung vor
- Automatisierte Implementierung: Verwandeln Sie Issues in funktionierenden Code mit einem einzigen Befehl oder einer Erwähnung
- Projektbewusst: Claude folgt Ihren
CLAUDE.md
-Richtlinien und bestehenden Code-Mustern - Einfache Einrichtung: Fügen Sie einen Job zu
.gitlab-ci.yml
hinzu und eine maskierte CI/CD-Variable - Enterprise-ready: Wählen Sie Anthropic API, AWS Bedrock oder Google Vertex AI, um Datenresidenz- und Beschaffungsanforderungen 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ückzucommiten:
-
Ereignisgesteuerte Orchestrierung: GitLab lauscht auf Ihre gewählten Trigger (zum Beispiel ein Kommentar, der
@claude
in einem Issue, 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:
- Anthropic 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 strengen Netzwerk- und Dateisystem-Regeln. Claude Code erzwingt arbeitsbereichsbeschränkte Berechtigungen, um Schreibvorgänge zu begrenzen. Jede Änderung fließt durch eine MR, sodass Reviewer das Diff sehen und Genehmigungen weiterhin gelten.
Wählen Sie regionale Endpunkte, um Latenz zu reduzieren und Datensouveränitätsanforderungen zu erfüllen, während Sie bestehende Cloud-Vereinbarungen nutzen.
Was kann Claude tun?
Claude Code ermöglicht leistungsstarke CI/CD-Workflows, die die Art und Weise transformieren, wie Sie mit Code arbeiten:
- MRs aus Issue-Beschreibungen oder Kommentaren erstellen und aktualisieren
- Performance-Regressionen analysieren und Optimierungen vorschlagen
- Features direkt in einem Branch implementieren und dann eine MR öffnen
- Bugs und Regressionen beheben, die durch Tests oder Kommentare identifiziert wurden
- Auf Follow-up-Kommentare antworten, um auf angeforderte Änderungen zu iterieren
Einrichtung
Schnelle Einrichtung
Der schnellste Weg, um zu beginnen, ist das Hinzufügen eines minimalen Jobs zu Ihrer .gitlab-ci.yml
und das Setzen Ihres API-Schlüssels als maskierte Variable.
-
Eine maskierte CI/CD-Variable hinzufügen
- Gehen Sie zu Einstellungen → CI/CD → Variablen
- Fügen Sie
ANTHROPIC_API_KEY
hinzu (maskiert, nach Bedarf geschützt)
-
Einen Claude-Job zu
.gitlab-ci.yml
hinzufügen
Nach dem Hinzufügen des Jobs und Ihrer ANTHROPIC_API_KEY
-Variable testen Sie, indem Sie den Job manuell von CI/CD → Pipelines ausführen oder ihn von einer MR auslösen, um Claude Aktualisierungen in einem Branch vorschlagen und bei Bedarf eine MR öffnen zu lassen.
Um stattdessen auf AWS Bedrock oder Google Vertex AI anstatt der Anthropic API zu laufen, siehe den Abschnitt Verwendung mit AWS Bedrock & Google Vertex AI unten für Authentifizierung und Umgebungseinrichtung.
Manuelle Einrichtung (für Produktion empfohlen)
Wenn Sie eine kontrolliertere Einrichtung bevorzugen oder Enterprise-Provider benötigen:
-
Provider-Zugriff konfigurieren:
- Anthropic API: Erstellen und speichern Sie
ANTHROPIC_API_KEY
als maskierte CI/CD-Variable - AWS Bedrock: GitLab → AWS OIDC konfigurieren und eine IAM-Rolle für Bedrock erstellen
- Google Vertex AI: Workload Identity Federation für GitLab → GCP konfigurieren
- Anthropic API: Erstellen und speichern Sie
-
Projekt-Anmeldedaten für GitLab API-Operationen hinzufügen:
- Verwenden Sie standardmäßig
CI_JOB_TOKEN
oder erstellen Sie ein Project Access Token mitapi
-Bereich - Als
GITLAB_ACCESS_TOKEN
(maskiert) speichern, wenn Sie ein PAT verwenden
- Verwenden Sie standardmäßig
-
Den Claude-Job zu
.gitlab-ci.yml
hinzufügen (siehe Beispiele unten) -
(Optional) Erwähnungsgesteuerte Trigger aktivieren:
- 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_INPUT
undAI_FLOW_CONTEXT
aufrufen, wenn ein Kommentar@claude
enthält
Beispiel-Anwendungsfälle
Issues in MRs verwandeln
In einem Issue-Kommentar:
Claude analysiert das Issue und die Codebasis, schreibt Änderungen in einem Branch und öffnet eine MR zur Überprüfung.
Implementierungshilfe erhalten
In einer MR-Diskussion:
Claude schlägt Änderungen vor, fügt Code mit angemessenem Caching hinzu und aktualisiert die MR.
Bugs schnell beheben
In einem Issue- oder MR-Kommentar:
Claude lokalisiert den Bug, implementiert eine Lösung und aktualisiert den Branch oder öffnet eine neue MR.
Verwendung mit AWS Bedrock & Google Vertex AI
Für Enterprise-Umgebungen können Sie Claude Code vollständig auf Ihrer Cloud-Infrastruktur mit derselben 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 Trust-Policy, die auf Ihr GitLab-Projekt/Refs beschränkt ist
- GitLab CI/CD-Variablen für Rollenübernahme:
AWS_ROLE_TO_ASSUME
(Rollen-ARN)AWS_REGION
(Bedrock-Region)
Einrichtungsanweisungen
Konfigurieren Sie AWS, um GitLab CI-Jobs zu erlauben, eine IAM-Rolle über OIDC zu übernehmen (keine statischen Schlüssel).
Erforderliche Einrichtung:
- Amazon Bedrock aktivieren und Zugriff auf Ihre Ziel-Claude-Modelle anfordern
- Einen IAM OIDC-Provider für GitLab erstellen, falls noch nicht vorhanden
- Eine IAM-Rolle erstellen, der vom GitLab OIDC-Provider vertraut wird, beschränkt auf Ihr Projekt und geschützte Refs
- Least-Privilege-Berechtigungen für Bedrock-Invoke-APIs anhängen
Erforderliche Werte zum Speichern in CI/CD-Variablen:
AWS_ROLE_TO_ASSUME
AWS_REGION
Variablen in Einstellungen → CI/CD → Variablen hinzufügen:
Verwenden Sie das AWS Bedrock-Job-Beispiel oben, um das GitLab-Job-Token zur Laufzeit gegen temporäre AWS-Anmeldedaten zu tauschen.
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 Trust-Policy, die auf Ihr GitLab-Projekt/Refs beschränkt ist
- GitLab CI/CD-Variablen für Rollenübernahme:
AWS_ROLE_TO_ASSUME
(Rollen-ARN)AWS_REGION
(Bedrock-Region)
Einrichtungsanweisungen
Konfigurieren Sie AWS, um GitLab CI-Jobs zu erlauben, eine IAM-Rolle über OIDC zu übernehmen (keine statischen Schlüssel).
Erforderliche Einrichtung:
- Amazon Bedrock aktivieren und Zugriff auf Ihre Ziel-Claude-Modelle anfordern
- Einen IAM OIDC-Provider für GitLab erstellen, falls noch nicht vorhanden
- Eine IAM-Rolle erstellen, der vom GitLab OIDC-Provider vertraut wird, beschränkt auf Ihr Projekt und geschützte Refs
- Least-Privilege-Berechtigungen für Bedrock-Invoke-APIs anhängen
Erforderliche Werte zum Speichern in CI/CD-Variablen:
AWS_ROLE_TO_ASSUME
AWS_REGION
Variablen in Einstellungen → CI/CD → Variablen hinzufügen:
Verwenden Sie das AWS Bedrock-Job-Beispiel oben, um das GitLab-Job-Token zur Laufzeit gegen temporäre AWS-Anmeldedaten zu tauschen.
Voraussetzungen
Bevor Sie Claude Code mit Google Vertex AI einrichten, benötigen Sie:
- Ein Google Cloud-Projekt mit:
- Vertex AI API aktiviert
- Workload Identity Federation konfiguriert, um GitLab OIDC zu vertrauen
- Ein dediziertes Service-Konto mit nur den erforderlichen Vertex AI-Rollen
- GitLab CI/CD-Variablen für WIF:
GCP_WORKLOAD_IDENTITY_PROVIDER
(vollständiger Ressourcenname)GCP_SERVICE_ACCOUNT
(Service-Konto-E-Mail)
Einrichtungsanweisungen
Konfigurieren Sie Google Cloud, um GitLab CI-Jobs zu erlauben, ein Service-Konto über Workload Identity Federation zu imitieren.
Erforderliche Einrichtung:
- IAM Credentials API, STS API und Vertex AI API aktivieren
- Einen Workload Identity Pool und Provider für GitLab OIDC erstellen
- Ein dediziertes Service-Konto mit Vertex AI-Rollen erstellen
- Dem WIF-Principal die Berechtigung erteilen, das Service-Konto zu imitieren
Erforderliche Werte zum Speichern in CI/CD-Variablen:
GCP_WORKLOAD_IDENTITY_PROVIDER
GCP_SERVICE_ACCOUNT
Variablen in Einstellungen → CI/CD → Variablen hinzufügen:
Verwenden Sie das Google Vertex AI-Job-Beispiel oben, um sich ohne Speicherung von Schlüsseln zu authentifizieren.
Konfigurationsbeispiele
Unten sind gebrauchsfertige Snippets, die Sie an Ihre Pipeline anpassen können.
Basis .gitlab-ci.yml (Anthropic API)
AWS Bedrock Job-Beispiel (OIDC)
Voraussetzungen:
- Amazon Bedrock aktiviert mit Zugriff auf Ihre gewählten Claude-Modelle
- GitLab OIDC in AWS mit einer Rolle konfiguriert, die Ihrem GitLab-Projekt und Refs vertraut
- IAM-Rolle mit Bedrock-Berechtigungen (Least Privilege empfohlen)
Erforderliche CI/CD-Variablen:
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-3-7-sonnet-20250219-v1:0
). Übergeben Sie das gewünschte Modell über Ihre Job-Konfiguration oder Prompt, falls 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
Erforderliche CI/CD-Variablen:
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 eine CLAUDE.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 beim Vorschlagen 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_KEY
als 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 Beitragenden
Performance-Optimierung
- Halten Sie
CLAUDE.md
fokussiert und prägnant - Stellen Sie klare Issue/MR-Beschreibungen bereit, um Iterationen zu reduzieren
- Konfigurieren Sie sinnvolle Job-Timeouts, um Runaway-Runs zu vermeiden
- Cachen Sie npm- und Paket-Installationen 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 die Runner-Abrechnung Ihres GitLab-Plans für Details
-
API-Kosten:
- Jede Claude-Interaktion verbraucht Token basierend auf Prompt- und Antwortgröße
- Token-Verbrauch variiert je nach Aufgabenkomplexität und Codebasis-Größe
- Siehe Anthropic-Preisefür Details
-
Kostenoptimierungs-Tipps:
- Verwenden Sie spezifische
@claude
-Befehle, um unnötige Turns zu reduzieren - Setzen Sie angemessene
max_turns
- und Job-Timeout-Werte - 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, sodass Reviewer jedes Diff sehen
- Branch-Schutz und Genehmigungsregeln gelten für KI-generierten Code
- Claude Code verwendet arbeitsbereichsbeschränkte Berechtigungen, um Schreibvorgänge zu begrenzen
- Kosten bleiben unter Ihrer Kontrolle, da Sie Ihre eigenen Provider-Anmeldedaten mitbringen
Fehlerbehebung
Claude antwortet nicht auf @claude-Befehle
- Überprüfen Sie, dass Ihre Pipeline ausgelöst wird (manuell, MR-Ereignis oder über einen Note-Event-Listener/Webhook)
- Stellen Sie sicher, dass CI/CD-Variablen (
ANTHROPIC_API_KEY
oder Cloud-Provider-Einstellungen) vorhanden und nicht maskiert sind - Überprüfen Sie, dass der Kommentar
@claude
(nicht/claude
) enthält und dass Ihr Erwähnungs-Trigger konfiguriert ist
Job kann keine Kommentare schreiben oder MRs öffnen
- Stellen Sie sicher, dass
CI_JOB_TOKEN
ausreichende Berechtigungen für das Projekt hat, oder verwenden Sie ein Project Access Token mitapi
-Bereich - Überprüfen Sie, dass das
mcp__gitlab
-Tool in--allowedTools
aktiviert ist - Bestätigen Sie, dass der Job im Kontext der MR läuft oder genügend Kontext über
AI_FLOW_*
-Variablen hat
Authentifizierungsfehler
- Für Anthropic API: Bestätigen Sie, dass
ANTHROPIC_API_KEY
gültig und nicht abgelaufen ist - Für Bedrock/Vertex: Überprüfen Sie OIDC/WIF-Konfiguration, Rollenimitation und Secret-Namen; bestätigen Sie Region und Modellverfügbarkeit
Erweiterte Konfiguration
Häufige Parameter und Variablen
Claude Code unterstützt diese häufig verwendeten Eingaben:
prompt
/prompt_file
: Anweisungen inline (-p
) oder über eine Datei bereitstellenmax_turns
: Anzahl der Hin-und-Her-Iterationen begrenzentimeout_minutes
: Gesamtausführungszeit begrenzenANTHROPIC_API_KEY
: Erforderlich für die Anthropic API (nicht für Bedrock/Vertex verwendet)- Provider-spezifische Umgebung:
AWS_REGION
, Projekt/Region-Vars 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.
Claudes Verhalten anpassen
Sie können Claude auf zwei primäre Weise leiten:
- 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_file
im Job. Verwenden Sie verschiedene Prompts für verschiedene Jobs (zum Beispiel Review, Implementierung, Refactoring).