Ein auf LLM basierender automatischer Code-Review-Assistent. Überwacht PR/MR-Änderungen via GitHub/GitLab Webhook, analysiert Code mit KI und postet automatisch Review-Kommentare in PR/MR, unterstützt dabei verschiedene Benachrichtigungskanäle.
Aufgrund von GitHub-Beschränkungen kann kein Video-Player direkt eingebettet werden.
Hauptfunktionen
Multiplattform-Unterstützung: Integration von GitHub- und GitLab-Webhooks zur Überwachung von Pull Request/Merge Request-Ereignissen.
Intelligente Review-Modi:
Detailliertes Review (/github_webhook, /gitlab_webhook): Die KI analysiert jede geänderte Datei, um spezifische Probleme zu identifizieren. Review-Kommentare werden strukturiert (z.B. mit Codezeilenbezug, Problemkategorisierung, Schweregrad, Analyse und Empfehlungen) als separate Kommentare im PR/MR gepostet. Das KI-Modell gibt JSON-formatierte Analysen aus, die dann in einzelne Kommentare umgewandelt werden.
Allgemeines Review (/github_webhook_general, /gitlab_webhook_general): Die KI führt eine Gesamtanalyse jeder geänderten Datei durch und generiert einen zusammenfassenden Markdown-Kommentar pro Datei.
Automatisierter Workflow:
Automatisches Posten von KI-Review-Kommentaren (mehrere im detaillierten Modus, einer pro Datei im allgemeinen Modus).
Automatischer Abschlusskommentar nach Abschluss aller Dateianalysen.
Freundliche Rückmeldung auch wenn keine relevanten Probleme gefunden wurden.
Asynchrone Verarbeitung von Review-Aufgaben für schnelle Webhook-Antwortzeiten.
Redis-basierte Vermeidung von Doppelreviews für denselben Commit.
Flexible Konfiguration:
Basiskonfiguration via Umgebungsvariablen.
Web-Verwaltungsoberfläche (/admin) und API (/config/*) für:
Verwaltung von Webhook-Secrets und Access Tokens für GitHub/GitLab-Repos/Projekte.
LLM-Parameter (API Key, Base URL, Model).
Konfiguration von Benachrichtigungs-Webhooks (Enterprise WeChat, Custom Webhook).
Einblick in Review-Historie.
Persistente Speicherung von Konfiguration und Ergebnissen in Redis.
Benachrichtigungen & Protokollierung:
Versand von Review-Zusammenfassungen (mit PR/MR-Link, Branch-Info, Ergebnisübersicht) an Enterprise WeChat und Custom Webhooks.
Speicherung von Review-Ergebnissen in Redis (Standard: 7 Tage Gültigkeit), Verwaltung via Admin-Panel, automatische Bereinigung geschlossener/ge-mergter PRs/MRs.
Deployment: Unterstützt Docker- und direkte Python-App-Bereitstellung.
Alle Aktionen erfordern Authentifizierung via ADMIN_API_KEY.
Config-API: RESTful API (/config/*) für programmatische Verwaltung, erfordert X-Admin-API-Key Header.
Persistenz:
Redis (erforderlich): Speichert Repo/Projekt-Konfigs, verarbeitete Commit-SHAs, Review-Ergebnisse (Standard: 7 Tage Gültigkeit). Service benötigt zwingend Redis.
Umgebungsvariablen: Laden globale Konfigs (LLM Key/URL, Redis-Verbindung, Admin API Key). Änderungen via Admin-Panel sind sofort wirksam, werden aber bei Neustart aus Umgebungsvariablen neu geladen. Daher empfiehlt sich persistente Verwaltung kritischer Konfigs via Umgebungsvariablen.
Nutzung
Service starten: Via Docker oder direkter Python-Ausführung, erforderliche Umgebungsvariablen setzen (ADMIN_API_KEY, OPENAI_API_KEY, REDIS_HOST etc.).
Repos/Projekte konfigurieren: Via Admin-Panel (/admin) oder API Ziel-Repos/Projekte mit Webhook-Secrets und Access Tokens (mit PR/MR-Kommentarrechten) hinzufügen.
Webhook einrichten: In GitHub/GitLab Repo/Projekt-Einstellungen Webhook hinzufügen:
Payload URL: Service-URL mit passendem Webhook-Endpunkt (siehe unten).
Content type: application/json.
Secret: Im Admin-Panel konfiguriertes Webhook-Secret.