Vai al contenuto principale
Devin supporta anche la connessione ad Azure DevOps tramite un service principal di Microsoft Entra, che non richiede un account di servizio dedicato con privilegi elevati di amministratore della directory. A seconda delle tue esigenze, questa opzione potrebbe essere più adatta: vedi Azure DevOps (Service Principal).

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. devin@yourcompany.com). Questo account di servizio dedicato consente una gestione degli accessi più chiara e registri di audit più puliti.
  2. Concedere all’utente Devin un ruolo admin sufficiente - Il nuovo account di servizio di Devin deve poter concedere il consenso dell’amministratore per il tenant (Application Administrator, Cloud Application Administrator o Global Administrator). Microsoft limita l’accesso delle applicazioni di terze parti, a meno che un admin con privilegi sufficienti 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 che può concedere il consenso dell’amministratore per il tuo tenant)
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 autorizzare il 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 essere in grado di concedere il consenso dell’amministratore per il tenant (Application Administrator, Cloud Application Administrator o Global Administrator) 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 che può concedere il consenso dell’amministratore per il tuo tenant)
  2. Nel tuo account Devin Enterprise, vai su Settings > Impostazioni Enterprise > integrazioni
Azure DevOps Connected Accounts
  1. Una volta nella pagina integrazioni, 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 che può concedere il consenso dell’amministratore per il tuo tenant).
Azure DevOps Permissions
  1. Dopo aver concesso le autorizzazioni, vedrai nuovamente nella pagina integrazioni, in Impostazioni Enterprise, 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 > Machine di Devin, fai clic su + Repository e integra i repository nella Machine di Devin.

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 enterprise@cognition.ai 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 possa concedere il consenso dell’amministratore per il tenant (richiede il ruolo di Application Administrator, Cloud Application Administrator o Global Administrator)
  • Controlla che il tenant Microsoft Entra ID consenta l’autorizzazione per 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 l’autorizzazione del repository sia stata concessa 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 l’autorizzazione di contributor sul repository di destinazione
  • Controlla che i criteri di branch non stiano bloccando la creazione della PR
  • Verifica che il branch di destinazione esista e sia accessibile

Configurazione di rete

Se hai abilitato il filtraggio IP nella tua istanza di Azure DevOps, dovrai inserire nella whitelist gli indirizzi IP di Devin. Per l’elenco più aggiornato, consulta la nostra documentazione sul whitelisting IP.