Correzione automatica dei build CI non riusciti
Aggiungi una GitHub Action che chiama Devin per correggere i build CI non riusciti nelle tue PR.Conserva la tua Devin API key su GitHub
Il workflow chiama la v3 API di Devin per creare sessioni in modo programmatico. Crea un service user e salva il relativo token come secret di GitHub Actions:
- Vai su app.devin.ai > Settings > Service Users e crea un service user con il permesso
ManageOrgSessions - Copia il token API mostrato dopo la creazione — viene visualizzato solo una volta
- Nel tuo repository GitHub, vai su Settings > Secrets and variables > Actions
- Aggiungi due secret:
DEVIN_API_KEY(il token) eDEVIN_ORG_ID(l’ID della tua organizzazione — ottienilo chiamandoGET https://api.devin.ai/v3/enterprise/organizationscon il tuo token)
Aggiungi il file di workflow
Crea Sostituisci
.github/workflows/devin-ci-fix.yml. Questo workflow si attiva ogni volta che il tuo workflow CI esistente termina con un errore, estrae i nomi dei job non riusciti e chiama la Devin API per avviare una sessione di correzione:"CI" nell’array workflows con il valore esatto di name: dal tuo file di workflow CI esistente (ad esempio, "Tests", "Build & Test").Usa il campo tags nel corpo della richiesta (ad esempio, "tags": ["ci-fix", "pr-312"]) per tenere traccia di quali errori della CI hanno già attivato sessioni ed evitare duplicati.Cosa accade quando la CI fallisce
Quando l’esecuzione CI di una PR fallisce, l’Action estrae i dettagli dell’errore e li passa a Devin come prompt di sessione. Ecco un tipico flusso di correzione automatica:
- Legge i log della CI — Devin apre l’URL dell’esecuzione e analizza l’output di errore, gli stack trace e i risultati dei test dei job non riusciti
- Rintraccia l’errore nel codice — Individua il file e la riga rilevanti sul branch della PR (ad es.
UserList.tsx:34) e legge il codice circostante e la diff recente - Invia una correzione — Esegue il commit di una modifica mirata direttamente sul branch della PR, che riavvia automaticamente la CI
- Commenta sulla PR — Pubblica un riepilogo che spiega la causa principale e cosa è stato modificato
Limita l’ambito agli errori corretti
Non tutti gli errori in CI traggono beneficio da una correzione automatica: i timeout dell’infrastruttura e i problemi di build Docker non verranno risolti da una modifica al codice. Aggiungi una condizione in modo che solo gli errori dei job rilevanti attivino Devin:
