Fehlgeschlagene CI-Builds automatisch beheben
Füge eine GitHub Action hinzu, die Devin aufruft, um fehlgeschlagene CI-Builds in deinen PRs zu beheben.Speichern Sie Ihren Devin API key auf GitHub
Der Workflow ruft Devin’s v3 API auf, um Sitzungen programmgesteuert zu erstellen. Erstelle einen Service User und speichere dessen Token als GitHub-Actions-Secret:
- Gehe zu app.devin.ai > Settings > Service Users und erstelle einen Service User mit der Berechtigung
ManageOrgSessions. - Kopiere das nach der Erstellung angezeigte API-Token — es wird nur einmal angezeigt.
- Navigiere in deinem GitHub-Repository zu Settings > Secrets and variables > Actions.
- Füge zwei Secrets hinzu:
DEVIN_API_KEY(das Token) undDEVIN_ORG_ID(deine Organisations-ID — du erhältst sie, indem duGET https://api.devin.ai/v3/enterprise/organizationsmit deinem Token aufrufst).
Workflow-Datei hinzufügen
Erstelle Ersetzen Sie
.github/workflows/devin-ci-fix.yml. Dieser Workflow wird immer dann ausgelöst, wenn dein bestehender CI-Workflow fehlschlägt, extrahiert die Namen der fehlgeschlagenen Jobs und ruft die Devin API auf, um eine Fehlerbehebungs-Session zu starten:"CI" im workflows-Array durch den genauen name: aus Ihrer bestehenden CI-Workflow-Datei (z. B. "Tests", "Build & Test").Verwenden Sie das Feld tags im Request-Body (z. B. "tags": ["ci-fix", "pr-312"]), um nachzuverfolgen, bei welchen CI-Fehlern bereits Sitzungen ausgelöst wurden, und Duplikate zu vermeiden.Was passiert, wenn CI fehlschlägt
Wenn der CI-Lauf eines PR fehlschlägt, extrahiert die Action die Fehlerdetails und übergibt sie als Prompt für eine Sitzung an Devin. So sieht ein typischer Auto-Fix-Workflow aus:
- Liest die CI-Logs — Devin öffnet die URL des Laufs und parst die Fehlerausgabe, Stacktraces und Testergebnisse der fehlgeschlagenen Jobs
- Verfolgt den Fehler bis zum Code — Lokalisiert die relevante Datei und Zeile im PR-Branch (z. B.
UserList.tsx:34) und liest den umgebenden Code sowie den jüngsten Diff - Pusht einen Fix — Committet eine gezielte Änderung direkt in den PR-Branch, wodurch CI automatisch erneut ausgelöst wird
- Kommentiert im PR — Postet eine Zusammenfassung, die die Ursache und die vorgenommenen Änderungen erklärt
Auf die relevanten Fehler eingrenzen
Nicht jeder CI-Fehlschlag lässt sich sinnvoll automatisch beheben – Infrastruktur-Timeouts und Docker-Build-Probleme werden nicht durch eine Code-Änderung gelöst. Fügen Sie eine Bedingung hinzu, sodass nur relevante Jobfehler Devin auslösen:
