AI Code Review via PR-Agent und adesso AI Hub
qwen-3.6-35b-sovereign. Drei Commands pro PR: review, describe, improve.
Kontext
SOLCOM nutzt Azure DevOps als Code-Hosting- und CI/CD-Plattform. Pull Requests durchlaufen bisher nur klassische Qualitätsgates (PHPCS, PHPStan, Theme-Build). Fehlte: ein automatisierter AI Code Review, der bei jedem PR inline-Kommentare mit Verbesserungsvorschlägen postet.
Verfügbare Komponenten:
- Azure DevOps unter
houseofhrmit bestehender YAML-Pipeline (azure-pipelines.yml) - adesso AI Hub — LiteLLM-Proxy (OpenAI-kompatibel) mit sovereign Modellen, u.a.
qwen-3.6-35b-sovereign - PR-Agent (Qodo/Codium) — reifstes Open-Source-Tool (11k★), unterstützt Azure DevOps via Docker-Image
Für GitHub und GitLab existieren fertige Actions, für Azure DevOps nicht — hier muss die Integration selbst gebaut werden.
Entscheidung
PR-Agent als Docker-Container in der bestehenden Azure DevOps Pipeline, konfiguriert auf den adesso AI Hub.
Die Integration läuft über einen neuen Job AiCodeReview in der PR_Validation-Stage:
- Container:
pragent/pr-agent:latest(AMD64, via ubuntu-latest ausführbar) - LLM-Config:
qwen-3.6-35b-sovereignvia adesso AI Hub (OpenAI-Base-URL + API-Key) - Git-Provider:
azure_devops(mit PAT für PR-Kommentare) - Drei Commands pro PR-Lauf:
review(inline Code-Kritik),describe(PR-Zusammenfassung),improve(Verbesserungsvorschläge)
Die Secrets ADESSO_AI_HUB_KEY und AZURE_DEVOPS_PAT liegen in der Variable Group solcom-mittwald-secrets-test.
Rejected alternatives
Eigenbau (Python-Script) rejected
Hätte maximale Kontrolle über Prompt-Logik gegeben, aber Wartungsaufwand (eigenes Docker-Image, API-Handling, Rate-Limits, Retry-Logik). Kein Mehrwert gegenüber PR-Agent erkennbar — die Qwen-3.6-35b reicht für PHP/Twig/JS-Reviews.
SkillFlow (AzDO-native Task) rejected
Flexibler (Markdown-konfigurierbare Skills, LangGraph), aber sehr neu (~50★, 2 Installs). Zu wenig Community-Erprobung für ein Produktivsystem.
Manueller Review via Comment-Trigger rejected
/review im PR-Comment löst Pipeline aus. Nicht gewählt, weil jedes PR-Update automatisch reviewt werden soll.
OpenAI-Modell statt sovereign rejected
adesso-Konzernvorgabe — sovereign Modelle sind Pflicht. Daten dürfen OpenAI/US nicht erreichen.
Consequences
- Vendor-Lock-in zu PR-Agent ist gering — wechselt man den Anbieter, tauscht man nur
OPENAI_KEY+OPENAI_BASE_URL+ Model-Name in den Pipeline-Variablen. - PR-Agent läuft als Blackbox-Docker — Prompt-Anpassungen nur via
.pr_agent.tomloderconfiguration.tomlim Repo möglich. - Qwen-3.6-35b hat kleinere Kontextfenster als GPT-4 — bei sehr grossen PRs (>2000 Lines Diff) könnten Reviews unvollständig sein.
- Pipeline-Laufzeit steigt um ca. 2–5 Minuten pro PR (3 PR-Agent-Commands).
- PAT mit Code (Read & Write) Scope ist ein Sicherheitsrisiko bei Kompromittierung — liegt als Secret in der Variable Group.