Vai al contenuto principale

Perché integrare Devin con Azure DevOps?

Integrare Devin con la tua organizzazione Azure DevOps consente a Devin di clonare repository, creare pull request (PR) e collaborare in modo efficace con il tuo team. Questa integrazione permette a Devin di lavorare senza problemi all’interno del tuo flusso di lavoro di sviluppo esistente. A differenza di alcune altre integrazioni SCM, Azure DevOps non visualizza le app di terze parti nello stesso modo. Tutta la gestione delle connessioni viene invece gestita all’interno di Devin in Impostazioni Enterprise > Integrazioni.

Prerequisiti

Prima di configurare l’integrazione con Azure DevOps, è necessario:
  1. Creare un utente Azure DevOps dedicato per Devin - Crea un nuovo account Azure DevOps specifico per Devin (ad es. [email protected]). Questo account di servizio dedicato consente una gestione degli accessi più chiara e registri di audit più puliti.
  2. Concedere privilegi AAD Global Admin all’utente Devin - Il nuovo account di servizio di Devin deve avere privilegi di Azure Active Directory (AAD) Global Admin. Microsoft limita l’accesso delle applicazioni di terze parti, a meno che un Global Admin non conceda il consenso a livello di tenant.
  3. Prepararsi alla procedura di connessione - Per completare l’integrazione, sarà necessario:
    • Essere connessi a Devin con il tuo account personale
    • Essere connessi ad Azure DevOps con l’account di servizio di Devin (il nuovo account con permessi AAD Global Admin)
Entrambe le sessioni del browser devono essere attive durante il processo di configurazione dell’integrazione: il tuo account Devin per avviare la connessione e l’account di servizio di Devin in Azure DevOps per approvare la richiesta di consenso OAuth.

Autenticazione e autorizzazioni

Devin utilizza OAuth 2.0 tramite MSAL di Microsoft (Microsoft Authentication Library) per connettersi ad Azure DevOps. L’account di servizio di Devin deve avere i privilegi di amministratore globale AAD per completare il flusso OAuth. Azure DevOps funziona tramite account di servizio, quindi Devin si connette utilizzando l’identità dell’utente Devin autorizzato anziché tramite un’app registrata.

Modello RBAC e autorizzazioni

L’integrazione di Devin con Azure DevOps si basa su un rigoroso modello di controllo degli accessi basato sui ruoli (RBAC) che separa autenticazione e autorizzazione. Questo garantisce che Devin possa accedere solo ai repository esplicitamente consentiti dagli amministratori Enterprise. Quando colleghi Azure DevOps a Devin:
  1. Viene creato un record di connessione con il refresh token crittografato, collegato all’identità utente
  2. Devin genera record di autorizzazione per definire quali organizzazioni, progetti e repository sono accessibili
  3. In fase di esecuzione vengono effettuati controlli su tutti i repository e confrontati con l’elenco delle autorizzazioni per far rispettare i limiti di accesso
Per i clienti Enterprise, le autorizzazioni possono essere replicate tra organizzazioni e tutti gli accessi a livello di repository sono gestiti tramite la Devin Enterprise UI, nella sezione Integrations.

Gerarchia di Azure DevOps

Azure DevOps utilizza una gerarchia a tre livelli: Organization > Project > Repository. Devin gestisce internamente questa struttura e può individuare e interagire con i repository a qualsiasi livello, purché l’utente connesso disponga dell’accesso necessario.

Configurazione dell’integrazione

  1. Accedi a entrambi gli account:
    • Accedi al tuo account Devin su app.devin.ai
    • In un altro browser o in una finestra in incognito, accedi ad Azure DevOps con l’account di servizio Devin (l’account con privilegi di AAD Global Admin)
  2. Nel tuo account Devin Enterprise, vai su Settings > Enterprise Settings > Integrations
Azure DevOps Connected Accounts
  1. Una volta nella pagina Integrations, fai clic sul pulsante Connect to Azure DevOps.
Connect To Azure DevOps
  1. Si aprirà una nuova scheda del browser, in cui ti verrà chiesto di concedere a Devin le autorizzazioni per la tua Azure DevOps Organization. Assicurati di avere effettuato l’accesso con l’account di servizio Devin (l’account con privilegi di AAD Global Admin).
Azure DevOps Permissions
  1. Dopo aver concesso le autorizzazioni, vedrai nuovamente nella pagina Integrations, in Enterprise Settings, la tua integrazione Azure DevOps e i Repository connessi.
Azure DevOps Integrated
  1. Ora che Devin ha accesso ad Azure DevOps, puoi concedere autorizzazioni a tutte o ad alcune Sub-Organizations all’interno del tuo account Enterprise. Per farlo, seleziona Git Permissions nella tua integrazione Azure DevOps, scegli una Sub-Organization e concedi le autorizzazioni a livello di Group o di Repository.
Azure DevOps Git Permissions
  1. Per ogni Organization a cui sono state concesse autorizzazioni, vai su Devin’s Settings > Devin’s Machine, fai clic su + Repository e integra i repository nella Devin’s Machine.

A cosa può accedere Devin

L’integrazione Azure DevOps di Devin è focalizzata solo sulle operazioni Git, tra cui:
FunzionalitàDescrizione
Elencare i repositoryVisualizzare i repository disponibili e i relativi metadati
Leggere i branchAccedere alle informazioni sui branch e alla cronologia dei commit
Creare pull requestAprire nuove PR per le modifiche al codice
Visualizzare le pull requestAccedere agli eventi, ai commenti e allo stato delle PR
Eseguire il push del codiceEseguire il push di nuovi branch e commit nei repository

A cosa Devin non può accedere

L’integrazione è intenzionalmente limitata alle sole funzionalità Git. Devin non ha accesso a:
  • Work item (board)
  • Pipeline o build
  • Piani di test
  • Artefatti
  • Wiki
  • Connessioni di servizio
Se in futuro la tua organizzazione avrà bisogno che Devin supporti anche queste aree aggiuntive, saranno necessari scope OAuth più ampi e una nuova logica lato provider. Contatta [email protected] per discutere le tue esigenze.

Considerazioni sulla sicurezza

Il sistema è progettato secondo il principio del minimo privilegio:
  • OAuth fornisce la capacità, RBAC definisce i limiti - OAuth concede la capacità tecnica di accedere ad Azure DevOps, ma un ulteriore livello di permessi Git impone i reali limiti di accesso
  • Solo accesso esplicitamente autorizzato - Devin non accede mai a repository o progetti che non siano stati esplicitamente autorizzati nell’interfaccia Enterprise
  • Credenziali crittografate - Tutti i refresh token sono crittografati e archiviati in modo sicuro
  • Audit trail - L’uso di un account di servizio dedicato rende più semplice tracciare l’attività di Devin nei log di audit di Azure DevOps
  • Policy di branch rispettate - Le PR di Devin sono soggette alle stesse policy di branch e agli stessi requisiti di revisione di qualsiasi altro collaboratore

Best practice

  • Usa l’account di servizio dedicato di Devin - Usa sempre l’account Azure DevOps dedicato creato per Devin, invece di collegarti con un account personale
  • Abilita i criteri di branch - Configura i criteri di branch in Azure DevOps per assicurarti che tutte le modifiche seguano appropriati processi di revisione prima di essere unite
  • Usa le autorizzazioni a livello di repository - Concedi a Devin l’accesso solo ai repository specifici di cui ha bisogno, invece di un accesso a livello di organizzazione
  • Monitora i log di accesso - Controlla regolarmente i log di audit di Azure DevOps relativi all’attività di Devin
  • Documenta la tua configurazione - Mantieni una documentazione interna che indichi a quali repository Devin ha accesso e per quale motivo
Consigliamo di configurare i criteri di branch in Azure DevOps per assicurarti che tutte le modifiche seguano appropriati processi di revisione prima di essere unite.
Se il tuo Microsoft Entra ID è integrato con l’HRIS (Human Resources Information System, sistema informativo delle risorse umane) della tua organizzazione, potrebbero essere necessari ulteriori passaggi di configurazione per completare l’integrazione con Azure DevOps. Contatta il team di supporto di Devin per assistenza con la configurazione avanzata.

Risoluzione dei problemi

Consenso OAuth non riuscito:
  • Verifica che l’account di servizio di Devin abbia il ruolo di AAD Global Admin
  • Controlla che il tenant di Azure AD consenta l’autorizzazione alle applicazioni di terze parti
  • Assicurati di aver effettuato l’accesso ad Azure DevOps con l’account di servizio di Devin (e non con il tuo account personale) quando completi il flusso OAuth
Devin non riesce a vedere i miei repository:
  • Verifica che l’account di servizio di Devin abbia accesso ai repository in Azure DevOps
  • Controlla che le autorizzazioni del repository siano state concesse nelle impostazioni Enterprise di Devin
  • Assicurati che i repository siano stati aggiunti alla Machine di Devin
Creazione della pull request non riuscita:
  • Conferma che l’account di servizio di Devin abbia i permessi di contributor sul repository di destinazione
  • Controlla che le branch policies non stiano bloccando la creazione della PR
  • Verifica che il branch di destinazione esista e sia accessibile

Configurazione di rete

Se hai il filtro IP abilitato nella tua istanza Azure DevOps, dovrai aggiungere gli indirizzi IP di Devin alla allowlist. Per l’elenco più aggiornato, consulta la nostra documentazione sull’allowlist IP.