Installation¶
Die Installationsoption hÀngt von Ihrem Anwendungsfall und Ihren Zielen ab.
1. CI/CD â Automatisiertes Review¶
Das hÀufigste Szenario: AI Code Reviewer lÀuft automatisch, wenn ein PR/MR erstellt oder aktualisiert wird.
Einrichtung in 5 Minuten:
-
Review fĂŒr GitHub einrichten â
Workflow-Beispiele â · Detaillierter GitHub-Leitfaden â
-
Review fĂŒr GitLab einrichten â
Workflow-Beispiele â · Detaillierter GitLab-Leitfaden â
FĂŒr Feinabstimmung siehe Konfiguration â
2. EigenstĂ€ndige Bereitstellung: CLI/Docker¶
CLI und Docker-Image ermöglichen die AusfĂŒhrung von AI Code Reviewer auĂerhalb der Standard-CI-Pipeline.
AnwendungsfĂ€lle¶
| Szenario | Wie umsetzen |
|---|---|
| Manueller Start | Lokales Terminal â Debugging, Demo, Evaluierung |
| Scheduled Review | GitLab Scheduled Pipeline / GitHub Actions schedule / cron |
| Batch Review | Skript, das ĂŒber offene PR/MR iteriert |
| Eigener Server | Docker auf Server mit Zugriff auf Git API |
| On-demand Review | Webhook â Container-Start |
Erforderliche Umgebungsvariablen¶
| Variable | Beschreibung | Wann benötigt | Wie erhalten |
|---|---|---|---|
AI_REVIEWER_GOOGLE_API_KEY |
Gemini API-SchlĂŒssel | Immer | Google AI Studio |
AI_REVIEWER_GITHUB_TOKEN |
GitHub Personal Access Token | FĂŒr GitHub | Anleitung |
AI_REVIEWER_GITLAB_TOKEN |
GitLab Personal Access Token | FĂŒr GitLab | Anleitung |
Fallback
Alte Namen ohne PrÀfix (z.B. GOOGLE_API_KEY) funktionieren weiterhin als Fallback.
Manueller Start¶
FĂŒr Debugging, Demo, Evaluierung vor dem Deployment, retrospektive PR/MR-Analyse.
Docker (empfohlen)¶
Keine Python-Installation erforderlich â alles ist im Container enthalten.
Schritt 1: Image herunterladen
Schritt 2: Review ausfĂŒhren
Docker-Images
VerfĂŒgbar von zwei Registries:
ghcr.io/konstziv/ai-code-reviewer:1â GitHub Container Registrykoszivdocker/ai-reviewbot:1â DockerHub
pip / uv¶
Installation als Python-Paket.
Schritt 1: Installieren
Python-Version
Erfordert Python 3.13+
Schritt 2: Variablen einrichten
export AI_REVIEWER_GOOGLE_API_KEY=your_api_key
export AI_REVIEWER_GITHUB_TOKEN=your_token # oder AI_REVIEWER_GITLAB_TOKEN fĂŒr GitLab
Schritt 3: AusfĂŒhren
Optionale Variablen¶
ZusĂ€tzliche Variablen sind fĂŒr die Feinabstimmung verfĂŒgbar:
| Variable | Standard | Wirkung |
|---|---|---|
AI_REVIEWER_LANGUAGE |
en |
Antwortsprache (ISO 639) |
AI_REVIEWER_LANGUAGE_MODE |
adaptive |
Spracherkennungsmodus |
AI_REVIEWER_GEMINI_MODEL |
gemini-2.5-flash |
Gemini-Modell |
AI_REVIEWER_LOG_LEVEL |
INFO |
Logging-Level |
VollstĂ€ndige Liste der Variablen â
Scheduled Reviews¶
Review nach Zeitplan ausfĂŒhren â zur Ressourceneinsparung oder wenn sofortiges Feedback nicht erforderlich ist.
# .gitlab-ci.yml
ai-review-scheduled:
image: ghcr.io/konstziv/ai-code-reviewer:1
script:
- |
# Liste der offenen MR abrufen
MR_LIST=$(curl -s --header "PRIVATE-TOKEN: $AI_REVIEWER_GITLAB_TOKEN" \
"$CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/merge_requests?state=opened" \
| jq -r '.[].iid')
# Review fĂŒr jeden MR ausfĂŒhren
for MR_IID in $MR_LIST; do
echo "Reviewing MR !$MR_IID"
ai-review --provider gitlab --repo $CI_PROJECT_PATH --pr $MR_IID || true
done
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
Zeitplan einrichten: Project â Build â Pipeline schedules â New schedule
# .github/workflows/scheduled-review.yml
name: Scheduled AI Review
on:
schedule:
- cron: '0 9 * * *' # TĂ€glich um 9:00 UTC
jobs:
review-open-prs:
runs-on: ubuntu-latest
steps:
- name: Get open PRs and review
env:
AI_REVIEWER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
AI_REVIEWER_GOOGLE_API_KEY: ${{ secrets.AI_REVIEWER_GOOGLE_API_KEY }}
run: |
# Liste der offenen PR abrufen
PRS=$(gh pr list --repo ${{ github.repository }} --state open --json number -q '.[].number')
for PR in $PRS; do
echo "Reviewing PR #$PR"
docker run --rm \
-e AI_REVIEWER_GOOGLE_API_KEY -e AI_REVIEWER_GITHUB_TOKEN \
ghcr.io/konstziv/ai-code-reviewer:1 \
--repo ${{ github.repository }} --pr $PR || true
done
Eigener Server / private Umgebung¶
FĂŒr die Bereitstellung auf eigener Infrastruktur mit Zugriff auf Git API.
Optionen:
- Docker auf Server â AusfĂŒhrung ĂŒber cron, systemd timer oder als Service
- Kubernetes â CronJob fĂŒr Scheduled Reviews
- Self-hosted GitLab â Variable
GITLAB_URLhinzufĂŒgen (siehe Beispiel unten)
Beispiel cron job:
# /etc/cron.d/ai-review
# TĂ€glich um 10:00 Review fĂŒr alle offenen MR ausfĂŒhren
0 10 * * * reviewer /usr/local/bin/review-all-mrs.sh
#!/bin/bash
# /usr/local/bin/review-all-mrs.sh
export AI_REVIEWER_GOOGLE_API_KEY="your_key"
export AI_REVIEWER_GITLAB_TOKEN="your_token"
MR_LIST=$(curl -s --header "PRIVATE-TOKEN: $AI_REVIEWER_GITLAB_TOKEN" \
"https://gitlab.company.com/api/v4/projects/123/merge_requests?state=opened" \
| jq -r '.[].iid')
for MR_IID in $MR_LIST; do
docker run --rm \
-e AI_REVIEWER_GOOGLE_API_KEY -e AI_REVIEWER_GITLAB_TOKEN \
ghcr.io/konstziv/ai-code-reviewer:1 \
--provider gitlab --repo group/repo --pr $MR_IID
done
Self-hosted GitLab
FĂŒr Self-hosted GitLab fĂŒgen Sie die Variable AI_REVIEWER_GITLAB_URL hinzu:
3. Contributors / Entwicklung¶
Wenn Sie Zeit und Inspiration haben, bei der Entwicklung des Pakets zu helfen, oder es als Grundlage fĂŒr Ihre eigene Entwicklung verwenden möchten â wir begrĂŒĂen und ermutigen solche Aktionen aufrichtig!
Entwicklungsinstallation¶
# Repository klonen
git clone https://github.com/KonstZiv/ai-code-reviewer.git
cd ai-code-reviewer
# AbhÀngigkeiten installieren (wir verwenden uv)
uv sync
# ĂberprĂŒfen
uv run ai-review --help
# Tests ausfĂŒhren
uv run pytest
# QualitĂ€tsprĂŒfungen ausfĂŒhren
uv run ruff check .
uv run mypy .
uv
Wir verwenden uv fĂŒr das Dependency-Management.
Installation: curl -LsSf https://astral.sh/uv/install.sh | sh
Projektstruktur¶
ai-code-reviewer/
âââ src/ai_reviewer/ # Quellcode
â âââ core/ # Models, Config, Formatierung
â âââ integrations/ # GitHub, GitLab, Gemini
â âââ utils/ # Utilities
âââ tests/ # Tests
âââ docs/ # Dokumentation
âââ examples/ # CI-Konfigurationsbeispiele
Anforderungen¶
Systemanforderungen¶
| Komponente | Anforderung |
|---|---|
| Python | 3.13+ (fĂŒr pip-Installation) |
| Docker | 20.10+ (fĂŒr Docker) |
| OS | Linux, macOS, Windows |
| RAM | 256MB+ |
| Netzwerk | Zugriff auf generativelanguage.googleapis.com |
API-SchlĂŒssel¶
| SchlĂŒssel | Erforderlich | Wie erhalten |
|---|---|---|
| Google Gemini API | Ja | Google AI Studio |
| GitHub PAT | FĂŒr GitHub | Anleitung |
| GitLab PAT | FĂŒr GitLab | Anleitung |
Gemini API-Limits¶
Free Tier
Google Gemini hat einen Free Tier:
| Limit | Wert |
|---|---|
| Anfragen pro Minute | 15 RPM |
| Tokens pro Tag | 1M |
| Anfragen pro Tag | 1500 |
Dies ist fĂŒr die meisten Projekte ausreichend.