Skip to main content

Perché integrare Devin con GitHub?

Integrare Devin con la tua organizzazione GitHub consente a Devin di creare pull request (PR), rispondere ai commenti sulle PR e collaborare direttamente all’interno dei tuoi repository. In questo modo Devin può essere un vero collaboratore del tuo team di engineering. Per iniziare, apri Settings → Connections → GitHub, fai clic su Add Connection e segui le istruzioni. Potrai selezionare a quali repository Devin può accedere e rivedere le autorizzazioni richieste.
Stai usando GitHub Enterprise Server o GitHub Enterprise Cloud con Data Residency? Consulta la guida all’integrazione di GitHub Enterprise Server per le istruzioni di configurazione.

Configurare l’integrazione

Devi essere un amministratore della tua organizzazione GitHub per creare e gestire l’integrazione con Devin. Riscontri problemi? Consulta la sezione Problemi comuni.
  1. Nel tuo account Devin, apri Settings → Connections → GitHub e fai clic su Add Connection.
Devin
  1. Se non hai già effettuato l’accesso a GitHub, ti verrà richiesto di autenticarti.
Devin
  1. Seleziona l’organizzazione GitHub che vuoi collegare a Devin.
Devin
  1. Scegli se concedere a Devin l’accesso a All repositories oppure a Select repositories per controllare a quali repository può accedere.
Devin
  1. Dopo aver completato l’autorizzazione su GitHub, verrai reindirizzato alle impostazioni di Devin, dove potrai confermare che l’integrazione è attiva.
Devin
Ti consigliamo di abilitare le regole di protezione del branch sul tuo branch principale per assicurarti che tutti i controlli richiesti vengano superati prima che Devin possa effettuare il merge delle modifiche.

Utilizzare Devin con l’integrazione GitHub

Per gli utenti Core e Teams

Una volta configurata l’integrazione, puoi menzionare i repository preceduti da @ direttamente nei tuoi prompt all’interno dell’applicazione web di Devin.

Per utenti Enterprise

Una volta configurata l’integrazione, puoi delegare i repository a specifiche organizzazioni dalla sezione Enterprise Settings > Repository Permissions.
Devin
Se lavori con un repository per la prima volta, ti consigliamo di completare la configurazione dell’ambiente di sviluppo nel flusso di onboarding per garantire che Devin disponga di informazioni accurate, e aggiornate sulla tua codebase. Devin risponde automaticamente ai commenti sulle PR su cui stanno lavorando le sue sessioni, finché la sessione non viene archiviata. Per avviare una nuova sessione da qualsiasi PR, consulta Avviare Devin da un commento alla PR.

Avviare Devin da un commento alla PR

Puoi affidare un’attività a Devin senza uscire da GitHub. Su qualsiasi pull request aperta in un repository collegato a Devin, lascia un commento che inizi con /devin seguito da ciò che vuoi far fare:
Devin avvia una nuova sessione con quel repository, usa la PR come contesto (prendendo in carico la PR se opportuno) e risponde sulla PR con un collegamento alla sessione. Requisiti:
  • Inizio del commento — il comando deve trovarsi all’inizio del commento. Non fa distinzione tra maiuscole e minuscole e funziona sia nei commenti della conversazione della PR sia nei commenti della review inline.
  • Solo PR aperte — i commenti sui problemi, o su PR chiuse o merged, vengono ignorati.
  • Accesso in scrittura — chi commenta deve avere l’autorizzazione write o admin sul repository.
  • Account collegato — l’account GitHub di chi commenta deve essere collegato al proprio account Devin e deve essere membro di un’organizzazione Devin con accesso al repository e l’autorizzazione a usare le sessioni Devin.
Se una sessione Devin è già al lavoro sulla PR, i commenti /devin vengono inviati a quella sessione invece di avviarne una nuova.

Collegamento degli utenti

La connessione della GitHub App descritta sopra vale per l’intera organizzazione. Oltre a questa, ogni utente può collegare il proprio account GitHub a Devin, in modo che Devin possa agire con la sua identità: le pull request che Devin apre nelle sue sessioni risultano create da lui e i commenti o le review che invia tramite Devin Review compaiono sotto il suo account GitHub. Per collegare un account GitHub personale:
  1. Vai su Settings > Connections nelle impostazioni del tuo account personale
  2. Individua la riga GitHub nell’elenco degli account
  3. Fai clic su Link e completa l’autorizzazione GitHub
Per rimuovere il collegamento in un secondo momento, fai clic su Unlink user nella stessa riga. Quando scolleghi l’account, Devin revoca l’OAuth token con GitHub.
La riga GitHub compare solo se la tua organizzazione ha una connessione GitHub. Se non la vedi, verifica di essere membro di una Devin organization con l’integrazione GitHub configurata. Le istanze di GitHub Enterprise Server compaiono come righe GitHub Enterprise separate, contrassegnate dall’host, e si collegano nello stesso modo.
Perché Devin apra le pull request come utente collegato, un admin deve anche impostare Open PRs as in Settings > Devin > Pull requests:
  • Devin: apre sempre le pull request come Devin
  • User: apre come l’utente se il suo account git è collegato, altrimenti come Devin
  • User only: apre come l’utente e restituisce un errore se il suo account git non è collegato (le automazioni e gli utenti di servizio ricadono comunque su Devin)

Gestione delle autorizzazioni di Devin in GitHub

Durante la configurazione, puoi concedere a Devin l’accesso a tutti i repository della tua organizzazione oppure limitare l’accesso a repository specifici. Puoi modificare in qualsiasi momento l’accesso ai repository dalle impostazioni di GitHub:
  1. Vai alle Settings della tua organizzazione GitHub > GitHub Apps (ad es. https://github.com/organizations/<org_name>/settings/installations)
  2. Seleziona Configure per l’integrazione Devin.ai
  3. In Repository access, scegli se concedere l’accesso a tutti i repository oppure seleziona repository specifici
  4. Fai clic su Save per applicare le modifiche
Devin
Devin richiede le seguenti autorizzazioni: Accesso in lettura a: Accesso in lettura e scrittura a: Queste autorizzazioni consentono a Devin di lavorare nei tuoi repository come un normale collaboratore, eseguendo il push dei branch, aprendo pull request e partecipando alle discussioni nelle pull request.

Template per le pull request

Quando Devin crea una pull request, utilizza un template presente nel tuo repository per strutturare la descrizione della PR. Se fornisci un template, Devin ne segue il formato quando invia le PR su GitHub. Puoi fornire a Devin un template dedicato senza modificare il tuo template predefinito per gli utenti umani, aggiungendo un file chiamato devin_pr_template.md in una delle posizioni supportate di PULL_REQUEST_TEMPLATE indicate di seguito. Questo è utile se vuoi che Devin includa contesto aggiuntivo, ad esempio una checklist per i revisori o un diagramma Mermaid dei file modificati.

Ordine di ricerca dei template

Devin cerca i template nel seguente ordine e utilizza il primo che trova:
  1. PULL_REQUEST_TEMPLATE/devin_pr_template.md
  2. docs/PULL_REQUEST_TEMPLATE/devin_pr_template.md
  3. .github/PULL_REQUEST_TEMPLATE/devin_pr_template.md
  4. pull_request_template.md
  5. docs/pull_request_template.md
  6. .github/pull_request_template.md
Se non viene trovato alcun template, Devin utilizza il suo formato predefinito per la descrizione delle PR.
Se vuoi che Devin utilizzi il tuo pull_request_template.md esistente, copialo (o crea un symlink) in uno dei percorsi devin_pr_template.md elencati sopra.
Per ulteriori informazioni sui template di pull request di GitHub (posizioni supportate, template multipli, parametri di query, ecc.), consulta la documentazione di GitHub: Creating a pull request template for your repository.

Firma dei commit

Per firmare i commit di Devin con GPG, configura la chiave nel tuo ambiente in modo che venga mantenuta tra una sessione e l’altra. Generare la chiave nel terminale di una sessione non funzionerà — ogni sessione di Devin viene avviata da una nuova copia dell’immagine della macchina, quindi tutte le chiavi create durante la sessione vengono eliminate alla fine della sessione.
La firma GPG tramite configurazione dell’ambiente produce commit Verified solo quando Devin è il committer. GitHub verifica le firme in base all’email del committer, ma in qualsiasi modalità di Commit authoring in cui il committer è l’utente che ha effettuato la richiesta (“Co-authored (you
  • Devin)”, “You only”, “Devin as author, you as committer”), Devin esegue i commit usando come committer l’email del singolo utente, che non corrisponderà a un’unica chiave GPG condivisa. Prima di fare affidamento su questa configurazione, chiedi a un amministratore Enterprise di impostare Commit authoring in Enterprise Settings > Devin > Git commit attribution su “Devin only”, “Co-authored (Devin + you)” o “You as author, Devin as committer”. Questa impostazione enterprise-wide sovrascrive la preferenza personale Git commit author di ciascun utente; finché resta su Per-user (Default), si applica la scelta individuale di ogni utente in Settings > Preferences. Se la tua organizzazione non fa parte di un enterprise, non esiste un controllo org-wide: ogni utente che avvia sessioni Devin deve impostare la propria preferenza personale Git commit author in Settings > Preferences su una di queste modalità.
Configura questa impostazione a livello org-wide (oppure a livello enterprise, se serve a tutte le tue orgs) in modo che ogni repo riceva una configurazione per la firma dei commit:
  1. Crea (o scegli) un account utente GitHub dedicato che possiederà sia l’identità dell’autore del commit sia le credenziali con cui Devin esegue il push, ad es. devin@company.com. Usare un unico account per entrambe le funzioni semplifica la configurazione della firma; usarne due significa dividere tra entrambi la configurazione descritta di seguito.
  2. Genera localmente una chiave GPG usando come UID l’email di quell’account, seguendo le istruzioni di GitHub.
  3. Carica la chiave pubblica nell’account GitHub la cui email verificata corrisponde all’UID GPG, in GitHub Settings > SSH and GPG keys. GitHub verifica le firme in base all’identità del committer, non a quella usata per eseguire il push — la chiave pubblica deve trovarsi nell’account che possiede l’email in user.email. (Se coincide con lo stesso account dedicato da cui esegui il push, devi farlo solo una volta.)
  4. Esporta la chiave privata, codificala in base64 e aggiungila (insieme ai corrispondenti GIT_USER_NAME / GIT_USER_EMAIL) come segreti in Settings → Risorse → segreto.
  5. Nella tua configurazione dell’ambiente org-wide, importa la chiave e abilita la firma all’avvio di ogni sessione. Per il file YAML completo, consulta l’esempio di firma dei commit GPG da copiare e incollare.
L’email del committer (user.email) deve corrispondere a un UID della chiave GPG e la stessa email deve essere verificata nell’account GitHub in cui hai caricato la chiave pubblica. Se anche solo uno di questi tre elementi non corrisponde, GitHub mostrerà il commit come Unverified anche se la firma in sé è valida.

Considerazioni sulla sicurezza

  • Protezione del branch: Consigliamo di abilitare le regole di protezione del branch sul branch principale per garantire che tutti i controlli richiesti vengano superati prima che Devin possa eseguire il merge delle modifiche.
  • Autorizzazioni a livello di organizzazione: Devin utilizza le autorizzazioni concesse a livello di organizzazione, non le autorizzazioni del singolo utente che esegue la sessione.
  • Accesso uniforme: Tutti gli utenti con accesso sia all’organizzazione GitHub che all’organizzazione Devin condividono le stesse autorizzazioni di integrazione Devin.
  • Creazione di repository: Devin non può creare nuovi repository nel tuo account GitHub.

Allowlist degli indirizzi IP

Se la tua organizzazione richiede un’allowlist di indirizzi IP per l’accesso a GitHub, aggiungi i seguenti indirizzi IP:
  • 100.20.50.251
  • 44.238.19.62
  • 52.10.84.81
  • 52.183.72.253
  • 20.172.46.235
  • 52.159.232.99
  • 4.204.199.103
  • 140.232.64.0/26
Questi indirizzi IP potrebbero cambiare in aggiornamenti futuri. Ti consigliamo di monitorare le nostre note di rilascio per eventuali modifiche.

Risoluzione dei problemi: organizzazione GitHub collegata all’organizzazione Devin errata

Se la tua organizzazione GitHub è già collegata a un’organizzazione Devin a cui non hai accesso, un amministratore dell’org GitHub può rimuovere l’installazione esistente e reinstallarla in un’altra organizzazione Devin.
Consigliamo di verificare con il proprietario dell’organizzazione Devin attuale prima di rimuovere l’installazione.
  1. Vai a github.com/settings/installations e fai clic su Configure accanto a Devin.ai Integration. Se necessario, passa al contesto dell’organizzazione GitHub corretto usando il menu a discesa Go to settings page in alto a destra.
    Cambia contesto delle impostazioni GitHub
  2. Nella pagina di installazione, scorri fino alla sezione Danger zone e fai clic su Uninstall per rimuovere Devin.ai Integration dall’organizzazione GitHub.
    Disinstalla Devin.ai Integration
  3. Torna su app.devin.ai e aggiorna la pagina. Ora puoi reinstallare l’integrazione GitHub sotto la tua organizzazione Devin.

Domande frequenti sull’integrazione con GitHub

Sì, puoi collegare alla tua organizzazione Devin sia un’organizzazione GitHub sia un account GitHub personale. Tuttavia, consigliamo di collegare l’account che dispone delle autorizzazioni appropriate affinché Devin possa accedere ai repository di cui il tuo team ha bisogno.
Solo gli utenti che sono membri dell’organizzazione che ha installato l’integrazione GitHub possono usarla nelle proprie sessioni con Devin. Devin eredita l’accesso all’integrazione GitHub in base all’appartenenza dell’utente all’organizzazione.
Le chiavi di crittografia sono gestite da AWS KMS e ruotate periodicamente.