Schnellstart¶
Starten Sie AI Code Reviewer in 5 Minuten auf GitHub oder GitLab.
Schritt 1: LLM-Provider wählen und API-Schlüssel erhalten¶
AI Reviewer unterstützt mehrere LLM-Provider. Wählen Sie einen (oder verwenden Sie beide für Fallback):
- Gehen Sie zu Google AI Studio
- Melden Sie sich mit Ihrem Google-Konto an
- Klicken Sie auf "Get API key" → "Create API key"
- Kopieren Sie den Schlüssel (beginnt mit
AIza...)
Kostenlose Stufe
Gemini API hat eine kostenlose Stufe: 15 Anfragen pro Minute, ausreichend für die meisten Teams von 4-8 Entwicklern.
- Gehen Sie zu Mistral Console
- Registrieren Sie sich oder melden Sie sich an
- Navigieren Sie zu API Keys → Create new key
- Kopieren Sie den Schlüssel (beginnt mit
sk-...)
Kostenlose Stufe
Mistral bietet eine kostenlose Stufe zum Experimentieren. Nach der Registrierung erhalten Sie kostenlose API-Credits, um alle Modelle auszuprobieren. Aktuelle Limits: Mistral Pricing.
Kostenloses Codestral
Codestral (ein code-spezialisiertes Modell) hat ein eigenes kostenloses Kontingent mit separatem Endpoint und Schlüssel:
- Gehen Sie zu codestral.mistral.ai
- Generieren Sie einen Codestral API-Schlüssel
- Setzen Sie
AI_REVIEWER_MISTRAL_API_URL=https://codestral.mistral.ai - Setzen Sie
AI_REVIEWER_MISTRAL_MODEL=codestral-latest
Dieser Schlüssel funktioniert nur mit codestral-latest am Codestral-Endpoint.
Holen Sie sich beide Schlüssel mit den Anleitungen oben. Das bietet Ihnen:
- Mistral als primäres Modell (z.B.
mistral-large-latest) - Google Gemini als automatisches Fallback, wenn Mistral nicht verfügbar ist
Dies ist die zuverlässigste Konfiguration für den Produktionseinsatz.
Schlüssel speichern
API-Schlüssel werden nur einmal angezeigt. Speichern Sie sie an einem sicheren Ort.
Schritt 2: Secrets zum Repository hinzufügen¶
Pfad: Repository → Settings → Secrets and variables → Actions → New repository secret
| Name | Value |
|---|---|
AI_REVIEWER_GOOGLE_API_KEY |
Ihr Gemini-Schlüssel (AIza...) |
| Name | Value |
|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Ihr Mistral-Schlüssel (sk-...) |
| Name | Value |
|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Ihr Mistral-Schlüssel (sk-...) |
AI_REVIEWER_GOOGLE_API_KEY |
Ihr Gemini-Schlüssel (AIza...) |
Klicken Sie für jeden auf "Add secret".
Detaillierte Anleitung mit Screenshots
- Öffnen Sie Ihr Repository auf GitHub
- Klicken Sie auf Settings (Zahnrad im oberen Menü)
- Finden Sie im linken Menü Secrets and variables → Actions
- Klicken Sie auf die grüne Schaltfläche New repository secret
- Geben Sie den Namen ein und fügen Sie Ihren Schlüssel ein
- Klicken Sie auf Add secret
- Wiederholen Sie für jedes Secret
Für GitLab benötigen Sie zusätzlich einen GitLab Token zum Posten von Kommentaren.
Schritt 2a: GitLab Token erstellen¶
Pfad: Benutzer-Avatar → Edit profile → Access Tokens
| Feld | Wert |
|---|---|
| Token name | ai-reviewer |
| Expiration date | Wählen Sie ein Datum (max. 1 Jahr) |
| Scopes | api |
Klicken Sie auf "Create personal access token" → Kopieren Sie den Token (wird nur einmal angezeigt!)
Kommentare erscheinen unter Ihrem Benutzernamen
Ein Personal Access Token ist an Ihr Konto gebunden. Alle Review-Kommentare werden in Ihrem Namen gepostet.
Maintainer-Rechte erforderlich
Zum Erstellen eines Project Access Token benötigen Sie die Rolle Maintainer oder Owner im Projekt.
Pfad: Project → Settings → Access Tokens
| Feld | Wert |
|---|---|
| Token name | ai-reviewer |
| Expiration date | Wählen Sie ein Datum (max. 1 Jahr) |
| Role | Developer |
| Scopes | api |
Klicken Sie auf "Create project access token" → Kopieren Sie den Token (wird nur einmal angezeigt!)
Schritt 2b: Variablen zu CI/CD hinzufügen¶
Pfad: Project → Settings → CI/CD → Variables
| Key | Value | Flags |
|---|---|---|
AI_REVIEWER_GOOGLE_API_KEY |
Ihr Gemini-Schlüssel | |
AI_REVIEWER_GITLAB_TOKEN |
Token aus Schritt 2a |
| Key | Value | Flags |
|---|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Ihr Mistral-Schlüssel | |
AI_REVIEWER_GITLAB_TOKEN |
Token aus Schritt 2a |
| Key | Value | Flags |
|---|---|---|
AI_REVIEWER_MISTRAL_API_KEY |
Ihr Mistral-Schlüssel | |
AI_REVIEWER_GOOGLE_API_KEY |
Ihr Gemini-Schlüssel | |
AI_REVIEWER_GITLAB_TOKEN |
Token aus Schritt 2a |
«Protected» deaktivieren!
Standardmäßig markiert GitLab neue Variablen als Protected. Protected-Variablen sind nur in geschützten Branches verfügbar (z.B. main), aber MR-Pipelines laufen auf ungeschützten Source-Branches — die Variable ist dann leer und Sie erhalten 401 Unauthorized.
CI_JOB_TOKEN funktioniert nicht
Verwenden Sie nicht GitLabs automatischen CI_JOB_TOKEN — er kann keine Kommentare zu Merge Requests posten.
Sie müssen einen Personal Access Token (oder Project Access Token bei Premium+) erstellen.
Schritt 3: AI Review zu CI hinzufügen¶
Erstellen Sie die Datei .github/workflows/ai-review.yml:
name: AI Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: ai-review-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
review:
runs-on: ubuntu-latest
if: github.event.pull_request.head.repo.full_name == github.repository
permissions:
contents: read
pull-requests: write
steps:
- uses: KonstZiv/ai-code-reviewer@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
google_api_key: ${{ secrets.AI_REVIEWER_GOOGLE_API_KEY }}
name: AI Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: ai-review-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
review:
runs-on: ubuntu-latest
if: github.event.pull_request.head.repo.full_name == github.repository
permissions:
contents: read
pull-requests: write
steps:
- uses: KonstZiv/ai-code-reviewer@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
mistral_api_key: ${{ secrets.AI_REVIEWER_MISTRAL_API_KEY }}
llm_provider: mistral
name: AI Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: ai-review-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
review:
runs-on: ubuntu-latest
if: github.event.pull_request.head.repo.full_name == github.repository
permissions:
contents: read
pull-requests: write
steps:
- uses: KonstZiv/ai-code-reviewer@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
mistral_api_key: ${{ secrets.AI_REVIEWER_MISTRAL_API_KEY }}
google_api_key: ${{ secrets.AI_REVIEWER_GOOGLE_API_KEY }}
llm_provider: mistral
llm_fallback_provider: google
name: AI Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: ai-review-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
review:
runs-on: ubuntu-latest
if: github.event.pull_request.head.repo.full_name == github.repository
permissions:
contents: read
pull-requests: write
steps:
- uses: KonstZiv/ai-code-reviewer@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
mistral_api_key: ${{ secrets.AI_REVIEWER_MISTRAL_API_KEY }}
llm_provider: mistral
mistral_model: codestral-latest
mistral_api_url: https://codestral.mistral.ai
Codestral-Schlüssel
Verwenden Sie den Schlüssel von codestral.mistral.ai, nicht den regulären Mistral API-Schlüssel.
Über GITHUB_TOKEN
secrets.GITHUB_TOKEN ist ein automatischer Token, den GitHub für jeden Workflow-Run erstellt. Sie müssen ihn nicht manuell zu den Secrets hinzufügen — er ist bereits verfügbar.
Erstellen oder aktualisieren Sie .gitlab-ci.yml:
stages:
- review
ai-review:
image: ghcr.io/konstziv/ai-code-reviewer:1
stage: review
script:
- ai-review
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
allow_failure: true
CI/CD-Variablen AI_REVIEWER_GOOGLE_API_KEY und AI_REVIEWER_GITLAB_TOKEN aus Schritt 2b werden automatisch vererbt.
stages:
- review
ai-review:
image: ghcr.io/konstziv/ai-code-reviewer:1
stage: review
variables:
AI_REVIEWER_LLM_PROVIDER: mistral
script:
- ai-review
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
allow_failure: true
CI/CD-Variablen AI_REVIEWER_MISTRAL_API_KEY und AI_REVIEWER_GITLAB_TOKEN aus Schritt 2b werden automatisch vererbt.
stages:
- review
ai-review:
image: ghcr.io/konstziv/ai-code-reviewer:1
stage: review
variables:
AI_REVIEWER_LLM_PROVIDER: mistral
AI_REVIEWER_LLM_FALLBACK_PROVIDER: google
script:
- ai-review
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
allow_failure: true
Alle drei CI/CD-Variablen (AI_REVIEWER_MISTRAL_API_KEY, AI_REVIEWER_GOOGLE_API_KEY, AI_REVIEWER_GITLAB_TOKEN) aus Schritt 2b werden automatisch vererbt.
stages:
- review
ai-review:
image: ghcr.io/konstziv/ai-code-reviewer:1
stage: review
variables:
AI_REVIEWER_LLM_PROVIDER: mistral
AI_REVIEWER_MISTRAL_MODEL: codestral-latest
AI_REVIEWER_MISTRAL_API_URL: https://codestral.mistral.ai
script:
- ai-review
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
allow_failure: true
CI/CD-Variablen AI_REVIEWER_MISTRAL_API_KEY (Codestral-Schlüssel verwenden) und AI_REVIEWER_GITLAB_TOKEN aus Schritt 2b sind automatisch verfügbar.
Schritt 4: Ergebnis überprüfen¶
Jetzt wird AI Review automatisch ausgeführt bei:
| Plattform | Ereignis |
|---|---|
| GitHub | PR erstellen, neue Commits im PR, PR wiedereröffnen |
| GitLab | MR erstellen, neue Commits im MR |
Was Sie sehen werden¶
Nach Abschluss des CI-Jobs erscheinen im PR/MR:
- Inline-Kommentare — an bestimmte Codezeilen gebunden
- "Apply suggestion"-Button — zum schnellen Anwenden von Korrekturen (GitHub)
- Summary-Kommentar — allgemeine Übersicht mit Metriken
Jeder Kommentar enthält:
/
/
Schweregrad-Badge
- Problembeschreibung
- Korrekturvorschlag
- Aufklappbaren Abschnitt "Warum ist das wichtig?"
In der Fußzeile wird angezeigt, welches Modell und welcher Provider verwendet wurde:
Model: Google / gemini-2.5-flash | Tokens: 1,234 | Latency: 2.3s | Est. cost: $0.0012
Fehlerbehebung¶
Review erscheint nicht?¶
Checkliste überprüfen:
- API-Schlüssel als Secret hinzugefügt? (
AI_REVIEWER_GOOGLE_API_KEYoderAI_REVIEWER_MISTRAL_API_KEY) -
llm_providerkorrekt gesetzt, wenn Mistral verwendet wird? (Standard istgoogle) -
github_tokenexplizit übergeben? (für GitHub) - Für GitLab:
AI_REVIEWER_GITLAB_TOKENmit Personal Access Token gesetzt? - CI-Job erfolgreich abgeschlossen? (Logs überprüfen)
- Für GitHub: hat
permissions: pull-requests: write? - Für Fork-PRs: Secrets sind nicht verfügbar — das ist erwartetes Verhalten
Rate Limit?¶
- Gemini Free Tier: 15 Anfragen pro Minute
- Mistral Free Tier: aktuelle Limits unter Mistral Pricing
Warten Sie eine Minute und versuchen Sie es erneut, oder konfigurieren Sie einen Fallback-Provider.
Was kommt als Nächstes?¶
| Aufgabe | Dokument |
|---|---|
| Antwortsprache konfigurieren | Konfiguration |
| Erweiterte LLM-Provider-Einstellungen | Konfiguration → LLM |
| Modelle ohne Codeänderung wechseln | GitHub → Variable-gesteuerte Konfiguration |
| Erweiterte GitHub-Einstellungen | GitHub-Leitfaden |
| Erweiterte GitLab-Einstellungen | GitLab-Leitfaden |
| Workflow-Beispiele | Beispiele |