Skip to main content
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 Agent 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.yml und eine maskierte CI/CD-Variable hinzu
  • Enterprise-ready: Wählen Sie Claude API, Amazon Bedrock oder Google Cloud’s Agent Platform, 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ückzucommiten:
  1. Ereignisgesteuerte Orchestrierung: GitLab lauscht auf Ihre gewählten Trigger (zum Beispiel ein Kommentar, der @claude in 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.
  2. Provider-Abstraktion: Verwenden Sie den Provider, der zu Ihrer Umgebung passt:
    • Claude API (SaaS)
    • Amazon Bedrock (IAM-basierter Zugriff, regionsübergreifende Optionen)
    • Google Cloud’s Agent Platform (GCP-nativ, Workload Identity Federation)
  3. 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.
Wählen Sie regionale Endpunkte, um die Latenz zu reduzieren und Anforderungen an die Datensouveränität zu erfüllen, während Sie vorhandene Cloud-Vereinbarungen nutzen.

Was kann Claude tun?

In einer GitLab-Pipeline kann Claude Code:
  • MRs aus Issue-Beschreibungen oder Kommentaren erstellen und aktualisieren
  • Leistungsregressionen analysieren und Optimierungen vorschlagen
  • Funktionen direkt in einem Branch implementieren und dann eine MR öffnen
  • Fehler und Regressionen beheben, die durch Tests oder Kommentare identifiziert wurden
  • Auf Folgekommen antworten, um angeforderte Änderungen zu iterieren

Einrichtung

Schnelle Einrichtung

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.
  1. Fügen Sie eine maskierte CI/CD-Variable hinzu
    • Gehen Sie zu Einstellungen → CI/CD → Variablen
    • Fügen Sie ANTHROPIC_API_KEY hinzu (maskiert, bei Bedarf geschützt)
  2. Fügen Sie einen Claude-Job zu .gitlab-ci.yml hinzu
Nachdem Sie den Job und Ihre ANTHROPIC_API_KEY-Variable hinzugefügt haben, testen Sie, indem Sie den Job manuell von CI/CD → Pipelines ausführen, oder lösen Sie ihn von einem MR aus, um Claude Aktualisierungen in einem Branch vorzuschlagen und bei Bedarf einen MR zu öffnen.
Um auf Amazon Bedrock oder Google Cloud’s Agent Platform statt der Claude API auszuführen, siehe den Abschnitt Verwendung mit Amazon Bedrock und Google Cloud unten für Authentifizierung und Umgebungseinrichtung.
Wenn Sie eine kontrollierte Einrichtung bevorzugen oder Enterprise-Provider benötigen:
  1. Konfigurieren Sie den Provider-Zugriff:
    • Claude API: Erstellen und speichern Sie ANTHROPIC_API_KEY als maskierte CI/CD-Variable
    • Amazon Bedrock: Konfigurieren Sie GitLab → AWS OIDC und erstellen Sie eine IAM-Rolle für Amazon Bedrock
    • Google Cloud’s Agent Platform: Konfigurieren Sie Workload Identity Federation für GitLab → GCP
  2. Fügen Sie Projektanmeldedaten für GitLab-API-Operationen hinzu:
    • Verwenden Sie CI_JOB_TOKEN standardmäßig, oder erstellen Sie ein Project Access Token mit api-Bereich
    • Speichern Sie als GITLAB_ACCESS_TOKEN (maskiert), wenn Sie ein PAT verwenden
  3. Fügen Sie den Claude-Job zu .gitlab-ci.yml hinzu: Verwenden Sie den Schnelle Einrichtung-Job für die Claude API, oder einen Provider-Job aus Konfigurationsbeispiele
  4. (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_INPUT und AI_FLOW_CONTEXT aufrufen, wenn ein Kommentar @claude enthält

Beispiele für Anwendungsfälle

Probleme in Merge Requests umwandeln

In einem Issue-Kommentar:
Claude analysiert das Issue und die Codebasis, schreibt Änderungen in einem Branch und öffnet einen MR zur Überprüfung.

Implementierungshilfe erhalten

In einer MR-Diskussion:
Claude schlägt Änderungen vor, fügt Code mit angemessenem Caching hinzu und aktualisiert den MR.

Fehler schnell beheben

In einem Issue- oder MR-Kommentar:
Claude lokalisiert den Fehler, implementiert eine Korrektur und aktualisiert den Branch oder öffnet einen neuen MR.

Verwendung mit Amazon Bedrock und Google Cloud

Für Unternehmensumgebungen können Sie Claude Code vollständig auf Ihrer Cloud-Infrastruktur mit der gleichen Entwicklererfahrung ausführen.

Voraussetzungen

Bevor Sie Claude Code mit Amazon Bedrock einrichten, benötigen Sie:
  1. Ein AWS-Konto mit Amazon Bedrock-Zugriff auf die gewünschten Claude-Modelle
  2. GitLab, das als OIDC-Identitätsanbieter in AWS IAM konfiguriert ist
  3. Eine IAM-Rolle mit Amazon Bedrock-Berechtigungen und eine Vertrauensrichtlinie, die auf Ihr GitLab-Projekt/Ihre Refs beschränkt ist
  4. GitLab CI/CD-Variablen für die Rollenübernahme:
    • AWS_ROLE_TO_ASSUME (Rollen-ARN)
    • AWS_REGION (Amazon Bedrock-Region)

Einrichtungsanweisungen

Konfigurieren Sie AWS, um GitLab CI-Jobs zu ermöglichen, eine IAM-Rolle über OIDC anzunehmen (keine statischen Schlüssel).Erforderliche Einrichtung:
  1. Aktivieren Sie Amazon Bedrock und fordern Sie Zugriff auf Ihre Ziel-Claude-Modelle an
  2. Erstellen Sie einen IAM OIDC-Anbieter für GitLab, falls nicht bereits vorhanden
  3. Erstellen Sie eine IAM-Rolle, der der GitLab OIDC-Anbieter vertraut, beschränkt auf Ihr Projekt und geschützte Refs
  4. Fügen Sie Berechtigungen mit minimalen Rechten für Amazon Bedrock Invoke APIs an
Verwenden Sie das Amazon Bedrock-Job-Beispiel, um das OIDC-Token des Jobs zur Laufzeit gegen temporäre AWS-Anmeldedaten auszutauschen.

Konfigurationsbeispiele

Nachfolgend finden Sie einsatzbereite Snippets, die Sie an Ihre Pipeline anpassen können.

Amazon Bedrock-Auftragsbeispiel (OIDC)

Voraussetzungen:
  • Amazon Bedrock aktiviert mit Zugriff auf Ihr(e) gewählte(s) Claude-Modell(e)
  • GitLab OIDC in AWS konfiguriert mit einer Rolle, die Ihr GitLab-Projekt und Refs vertraut
  • IAM-Rolle mit Amazon Bedrock-Berechtigungen (Least-Privilege empfohlen)
Erforderliche CI/CD-Variablen:
  • AWS_ROLE_TO_ASSUME: ARN der IAM-Rolle für Amazon Bedrock-Zugriff
  • AWS_REGION: Amazon Bedrock-Region (zum Beispiel us-west-2)
GitLab erstellt das OIDC-Token des Auftrags aus dem id_tokens:-Block und stellt es als GITLAB_OIDC_TOKEN bereit. Setzen Sie aud auf den Zielgruppenwert, den Sie auf dem IAM OIDC-Identitätsanbieter in AWS konfiguriert haben, zum Beispiel Ihre GitLab-Instanz-URL.
Modell-IDs für Amazon Bedrock enthalten regionsspezifische Präfixe (zum Beispiel us.anthropic.claude-sonnet-4-6). Übergeben Sie das gewünschte Modell über Ihre Auftragskonfiguration oder Eingabeaufforderung, wenn Ihr Workflow dies unterstützt.

Agent Platform-Auftragsbeispiel (Workload Identity Federation)

Voraussetzungen:
  • Google Cloud’s Agent Platform API in Ihrem GCP-Projekt aktiviert
  • Workload Identity Federation konfiguriert, um GitLab OIDC zu vertrauen
  • Ein Dienstkonto mit Google Cloud’s Agent Platform-Berechtigungen
Erforderliche CI/CD-Variablen:
  • GCP_WORKLOAD_IDENTITY_PROVIDER: Anbieter-Ressourcenname ohne das //iam.googleapis.com/-Präfix, wie projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider
  • GCP_SERVICE_ACCOUNT: E-Mail des Dienstkontos
  • GCP_PROJECT_ID: Google Cloud-Projekt-ID
  • CLOUD_ML_REGION: Google Cloud’s Agent Platform-Region (zum Beispiel us-east5)
GitLab erstellt das OIDC-Token des Auftrags aus dem id_tokens:-Block und stellt es als GITLAB_OIDC_TOKEN bereit. Setzen Sie aud auf den Zielgruppenwert, den Sie auf dem Workload Identity Pool-Anbieter konfiguriert haben, zum Beispiel Ihre GitLab-Instanz-URL. Der Auftrag schreibt das Token in eine Datei, und der credential_source-Eintrag der Anmeldeinformationskonfiguration teilt Googles Auth-Bibliotheken mit, es von dort zu lesen. Das Setzen von GOOGLE_APPLICATION_CREDENTIALS auf die Anmeldeinformationskonfigurationsdatei macht sie für Claude Code über Application Default Credentials verfügbar.
Mit Workload Identity Federation müssen Sie keine Dienstkontoschlüssel speichern. Verwenden Sie Repository-spezifische Vertrauensbedingungen und Dienstkonten mit Least-Privilege.

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 befolgt Ihre Konventionen bei der Vorschlagung von Änderungen.

Sicherheitsaspekte

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 wo möglich anbieterspezifisches OIDC (keine langlebigen Schlüssel)
  • Begrenzen Sie Job-Berechtigungen und Netzwerk-Egress
  • Überprüfen Sie Claudes MRs wie jeden anderen Beitrag

Leistungsoptimierung

  • Halten Sie CLAUDE.md fokussiert und prägnant
  • Geben Sie klare Issue-/MR-Beschreibungen an, um Iterationen zu reduzieren
  • 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
    • Weitere Informationen finden Sie in der Runner-Abrechnung Ihres GitLab-Plans
  • API-Kosten:
    • Jede Claude-Interaktion verbraucht Token basierend auf der Größe von Prompt und Antwort
    • Die Token-Nutzung variiert je nach Aufgabenkomplexität und Codebase-Größe
    • Weitere Informationen finden Sie unter Anthropic-Preisgestaltung
  • Tipps zur Kostenoptimierung:
    • Verwenden Sie spezifische @claude-Befehle, um unnötige Durchläufe zu reduzieren
    • Legen Sie angemessene --max-turns- und Job-timeout-Werte fest
    • Begrenzen Sie die Parallelität, um parallele Ausführungen zu kontrollieren

Fehlerbehebung

Claude antwortet nicht auf @claude-Befehle

  • Überprüfen Sie, dass Ihre Pipeline ausgelöst wird (manuell, MR-Ereignis oder über einen Note-Ereignis-Listener/Webhook)
  • Stellen Sie sicher, dass Ihre ANTHROPIC_API_KEY oder Cloud-Provider-Variablen vorhanden sind
  • Überprüfen Sie, dass der Kommentar @claude enthält (nicht /claude) und dass Ihr Mention-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 mit api-Bereich
  • Überprüfen Sie, dass das mcp__gitlab-Tool in --allowedTools aktiviert ist
  • Bestätigen Sie, dass der Job im Kontext des MR ausgeführt wird oder über AI_FLOW_*-Variablen genügend Kontext hat

Authentifizierungsfehler

  • Für Claude API: Bestätigen Sie, dass ANTHROPIC_API_KEY gültig und nicht abgelaufen ist
  • Für Amazon Bedrock oder Google Cloud’s Agent Platform: Überprüfen Sie die OIDC/WIF-Konfiguration, Rollenidentitätswechsel und Geheimnisnamen; bestätigen Sie Regionen- und Modellverfügbarkeit

Erweiterte Konfiguration

Häufige Parameter und Variablen

Steuern Sie Claude Code-Ausführungen in Ihren Jobs mit diesen CLI-Flags, GitLab-Schlüsselwörtern und Variablen:
  • -p: Anweisungen inline bereitstellen, zum Beispiel claude -p "Review this MR"
  • --max-turns: Begrenzen Sie die Anzahl der Hin- und Herbewegungen
  • timeout: Begrenzen Sie die gesamte Job-Ausführungszeit mit GitLabs Job-Level-Schlüsselwort timeout, zum Beispiel timeout: 30m
  • ANTHROPIC_API_KEY: erforderlich für die Claude API (nicht verwendet für Amazon Bedrock oder Google Cloud’s Agent Platform)
  • Anbieter-spezifische Umgebung: AWS_REGION, Projekt-/Regionsvariablen für Google Cloud’s Agent Platform
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 anzuzeigen.

Anpassung des Verhaltens von Claude

Sie können Claude auf zwei primäre Arten lenken:
  1. CLAUDE.md: Definieren Sie Codierungsstandards, Sicherheitsanforderungen und Projektkonventionen. Claude liest dies während der Ausführungen und befolgt Ihre Regeln.
  2. Benutzerdefinierte Prompts: Übergeben Sie aufgabenspezifische Anweisungen über -p im Job. Verwenden Sie unterschiedliche Prompts für verschiedene Jobs (zum Beispiel Review, Implementierung, Umgestaltung).