> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure DevOps (service principal)

> Collega Devin ad Azure DevOps usando un service principal di Microsoft Entra

<div id="overview">
  ## Panoramica
</div>

Devin si connette ad Azure DevOps tramite un service principal di Microsoft Entra. Il tuo amministratore approva nel tuo tenant l'applicazione **Cognition Azure DevOps Service Principal** pubblicata da Cognition; questo crea un service principal che poi aggiungi alla tua organizzazione Azure DevOps con le autorizzazioni che scegli.

* Durante l'approvazione in Entra viene richiesto solo `User.Read`: serve esclusivamente a stabilire l'identità
* La sola approvazione in Entra **non** concede l'accesso ai repository o al codice
* L'accesso ai repository è interamente controllato dalle autorizzazioni che assegni in Azure DevOps

A differenza di altre integrazioni SCM, Azure DevOps non mostra le app di terze parti nello stesso modo. Tutta la gestione delle connessioni avviene in Devin, in **Settings > Enterprise Settings > Integrations**.

<div id="prerequisites">
  ## Prerequisiti
</div>

Prima di configurare l'integrazione con Azure DevOps, assicurati di disporre di:

1. **Account Enterprise Devin** con autorizzazione a gestire le integrazioni
2. **Amministratore Microsoft Entra** che possa concedere il consenso dell'amministratore per le applicazioni
3. **Amministratore dell'organizzazione Azure DevOps** che possa aggiungere utenti e assegnare autorizzazioni

<div id="setting-up-the-integration">
  ## Configurazione dell'integrazione
</div>

1. Accedi al tuo account Devin su [app.devin.ai](https://app.devin.ai).

2. In un browser separato o in una finestra di navigazione in incognito, accedi ad Azure DevOps (necessario per il passaggio 6).

3. Nel tuo account Devin Enterprise, vai a **Settings > Enterprise Settings > Integrations** e seleziona **Azure DevOps**.

4. Apri il menu a discesa del pulsante **Connect** e seleziona **Connect with service principal**.

<Frame>
  <img src="https://mintcdn.com/cognitionai/d4tSaSvcW_EO3rtt/images/enterprise/ADO-connect-service-principal.png?fit=max&auto=format&n=d4tSaSvcW_EO3rtt&q=85&s=6368b81bb8fc22f2f0425ad8eb809d17" alt="Connetti con service principal" width="1466" height="676" data-path="images/enterprise/ADO-connect-service-principal.png" />
</Frame>

5. Verrai reindirizzato a Microsoft per concedere a Devin l'autorizzazione per il tuo tenant. Dopo l'approvazione, verrai riportato alla pagina di integrazione di Azure DevOps in Devin, che ora mostra una sezione **Add organization with service principal**.
   * L'approvazione crea un service principal nel tuo tenant Microsoft Entra
   * Questo passaggio richiede solo `User.Read` e non concede l'accesso ai repository

6. In Azure DevOps, vai a **Settings dell'organizzazione > Users**:
   * Fai clic su **Add Users** e aggiungi il service principal (`Cognition Azure DevOps Service Principal`)
   * Seleziona **Basic** come livello di accesso (Stakeholder non è sufficiente: le API richiedono Basic)
   * Aggiungilo a tutti i progetti a cui vuoi che Devin abbia accesso
   * Assegna il service principal ai gruppi pertinenti di Azure DevOps (in genere Project Contributors)

7. Torna in Devin e, nella sezione **Add organization with service principal** della pagina di integrazione di Azure DevOps, inserisci il nome dell'organizzazione Azure DevOps del passaggio precedente e fai clic su **Add**.

8. In Devin, seleziona **Git Permissions** nella tua integrazione Azure DevOps, scegli una Sub-Organization e concedi le autorizzazioni a livello di Group o Repository.

<Frame>
  <img src="https://mintcdn.com/cognitionai/IUVOuadgM9g1fi9k/images/enterprise/ADO-git-permissions.png?fit=max&auto=format&n=IUVOuadgM9g1fi9k&q=85&s=765a3e9cdbc8da18001b0cc268e72e64" alt="Autorizzazioni Git di Azure DevOps" width="2414" height="630" data-path="images/enterprise/ADO-git-permissions.png" />
</Frame>

9. Per ogni organizzazione a cui sono state concesse autorizzazioni, vai a **Devin's Settings > Devin's Machine**, fai clic su **+ Repository** e integra i repository.

<div id="what-devin-can-access">
  ## A cosa può accedere Devin
</div>

L'integrazione di Devin con Azure DevOps è limitata alle sole **operazioni Git**:

| Funzionalità                 | Descrizione                                                        |
| ---------------------------- | ------------------------------------------------------------------ |
| Visualizzare i repository    | Visualizzare i repository disponibili e i relativi metadati        |
| Leggere i branch             | Accedere alle informazioni sui branch e alla cronologia dei commit |
| Creare pull request          | Aprire nuove PR per le modifiche al codice                         |
| Visualizzare le pull request | Accedere agli eventi delle PR, ai commenti e allo stato            |
| Eseguire il push del codice  | Eseguire il push di nuovi branch e commit nei repository           |

Devin **non** ha accesso a work item, pipeline, build, piani di test, artefatti, wiki o connessioni di servizio.

<Note>
  Se in futuro la tua organizzazione avrà bisogno che Devin supporti ulteriori aree di Azure DevOps, contatta [enterprise@cognition.ai](mailto:enterprise@cognition.ai) per discutere le tue esigenze.
</Note>

<div id="security-considerations">
  ## Considerazioni sulla sicurezza
</div>

* **Autorizzazioni Entra minime** — Viene richiesto solo `User.Read`. Nessun accesso in lettura all'intera directory, nessuna visibilità sull'appartenenza ai gruppi né controllo amministrativo.
* **Autorizzazione esplicita** — La sola approvazione in Entra non concede alcun accesso ad Azure DevOps. Tutti gli accessi ai repository devono essere assegnati esplicitamente dall'amministratore di Azure DevOps.
* **Credenziali crittografate** — Tutti i token sono crittografati e archiviati in modo sicuro.
* **Accesso con ambito definito** — Le autorizzazioni possono essere limitate a progetti, repository e operazioni specifici tramite la UI Enterprise di Devin.
* **Tracciabilità** — L'attività viene registrata nei log di accesso di Entra e nei log di audit di Azure DevOps.
* **Criteri dei branch rispettati** — Le PR di Devin sono soggette agli stessi criteri dei branch e agli stessi requisiti di revisione previsti per qualsiasi altro collaboratore.

<div id="best-practices">
  ## Buone pratiche
</div>

* **Usa autorizzazioni a livello di repository** — Concedi a Devin l'accesso solo ai repository e ai progetti specifici di cui ha bisogno, anziché all'intera organizzazione.
* **Abilita i criteri del branch** — Configura i criteri del branch in Azure DevOps per garantire che tutte le modifiche passino attraverso adeguati processi di revisione prima di essere integrate.
* **Monitora i log di audit** — Controlla regolarmente i log di audit di Azure DevOps e i log di accesso di Entra relativi all'attività del service principal.

<div id="troubleshooting">
  ## Risoluzione dei problemi
</div>

**Il consenso amministratore non va a buon fine:**

* Verifica che l'utente che approva disponga dell'autorizzazione per concedere il consenso amministratore alle applicazioni nel tenant Entra
* Se il tenant limita il consenso alle applicazioni, potrebbe essere necessario l'intervento di un Amministratore globale o di un Amministratore applicazioni cloud

**Il service principal non è visibile in Azure DevOps:**

* Verifica che il consenso amministratore sia stato completato correttamente nel portale Entra in **Applicazioni aziendali** (cerca `Cognition Azure DevOps Service Principal`)
* Assicurati che il service principal sia stata aggiunta esplicitamente all'organizzazione Azure DevOps in **Settings dell'organizzazione > Utenti**

**L'accesso è bloccato da Accesso condizionale / MFA:**

* Se il service principal è soggetta a criteri di Accesso condizionale che impongono l'MFA, l'aggiornamento del token non riuscirà senza mostrare errori. Crea un'esclusione di Accesso condizionale per il service principal relativa all'applicazione Devin.

**Devin non riesce a vedere i miei repository:**

* Verifica che il service principal sia stata aggiunta all'organizzazione Azure DevOps in **Settings dell'organizzazione > Utenti**
* Conferma che il livello di accesso sia impostato su **Basic** (Stakeholder non è sufficiente per l'accesso API)
* Verifica che le autorizzazioni del repository siano state concesse nelle Enterprise Settings di Devin
* Assicurati che i repository siano stati aggiunti a Devin's Machine

**La creazione della pull request non riesce:**

* Conferma che il service principal disponga delle autorizzazioni di Collaboratore nel repository di destinazione
* Verifica che i criteri del branch non blocchino la creazione della PR
* Verifica che il branch di destinazione esista e sia accessibile

<div id="network-setup">
  ## Configurazione di rete
</div>

Se nella tua istanza di Azure DevOps è abilitato il filtro IP, dovrai aggiungere gli indirizzi IP di Devin alla whitelist.

Per l'elenco più aggiornato, consulta la nostra [documentazione sull'IP whitelisting](/it/admin/common-issues#ip-whitelisting).
