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

# Integrazione con GitHub Enterprise Server

> Connetti Devin a GitHub Enterprise Server o a GitHub Enterprise Cloud con residenza dei dati

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

Devin supporta due metodi per connettersi a GitHub Enterprise Server (GHES) e GitHub Enterprise Cloud (GHEC) con Data Residency:

1. **GitHub App (Consigliata)** — Registra e installa una GitHub App dedicata sulla tua istanza GHES o GHEC. Questa opzione semplifica la configurazione e non richiede la gestione di token di accesso personali.
2. **Personal Access Token (PAT)** — Crea un account di servizio e genera un token di accesso personale con autorizzazioni granulari. Questo metodo funziona con tutte le versioni di GHES.

<Note>
  L'integrazione GitHub App è attualmente disponibile su base limitata. Per iniziare, contatta il tuo referente Cognition.
</Note>

***

<div id="github-app-setup">
  ## Configurazione della GitHub App
</div>

La configurazione della GitHub App prevede tre passaggi:

1. **Registrazione dell'App** — Registra una GitHub App nella tua istanza GHES o GHEC. È necessaria **una sola registrazione dell'App per istanza**.
2. **Configurazione dell'App** — Configura l'App registrata nella tua istanza GHES o GHEC (ad es. rendila pubblica e disattiva la scadenza del token).
3. **Installazione dell'App** — Installa l'App registrata in ogni organizzazione GitHub a cui vuoi consentire l'accesso a Devin. È necessaria **un'installazione per ogni organizzazione**.

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

* Un utente Devin con **Gestisci le autorizzazioni Git**
* Accesso come owner o admin all'organizzazione GitHub in cui verrà registrata l'App

<div id="step-1-register-the-github-app">
  ### Passaggio 1: Registra la GitHub App
</div>

1. Nel tuo account Devin, vai a **Enterprise Settings** → **Integrations** → **GitHub**.
2. Espandi la sezione **Advanced** per visualizzare le opzioni **GitHub Enterprise**.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/Eif_NNHmp1Px-KLi/images/enterprise/ghes-app/ghes-advanced-section.png?fit=max&auto=format&n=Eif_NNHmp1Px-KLi&q=85&s=f3e1ea6a8b5b8992f5517ba2f5d7c22a" alt="Sezione Advanced di GitHub Enterprise" width="3840" height="1980" data-path="images/enterprise/ghes-app/ghes-advanced-section.png" />
</Frame>

3. Fai clic su **Register App**.
4. Nella finestra modale visualizzata, inserisci l'**hostname** della tua istanza GHES o GHEC e l'**organizzazione** in cui verrà registrata la GitHub App.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/Eif_NNHmp1Px-KLi/images/enterprise/ghes-app/ghes-register-app-modal.png?fit=max&auto=format&n=Eif_NNHmp1Px-KLi&q=85&s=fd07f979ccd97d4776562da7dc71d591" alt="Finestra modale Register App" width="3840" height="1978" data-path="images/enterprise/ghes-app/ghes-register-app-modal.png" />
</Frame>

5. Verrai reindirizzato a GitHub. Fai clic su **Register App** per completare la registrazione.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/Eif_NNHmp1Px-KLi/images/enterprise/ghes-app/ghes-github-register-page.png?fit=max&auto=format&n=Eif_NNHmp1Px-KLi&q=85&s=5c7eccabdfda442bd77ba97f46ba4d60" alt="Pagina di registrazione di GitHub" width="3840" height="1986" data-path="images/enterprise/ghes-app/ghes-github-register-page.png" />
</Frame>

6. Dopo il reindirizzamento a Devin, la GitHub App risulterà registrata nella tua organizzazione GitHub.

<div id="step-2-configure-the-github-app">
  ### Passaggio 2: Configurare la GitHub App
</div>

Dopo la registrazione, configura la GitHub App sulla tua istanza GHES o GHEC:

1. Sulla tua istanza GHES o GHEC, vai all'organizzazione GitHub specificata durante la registrazione.
2. Vai a **Settings** → **Developer Settings** → **GitHub Apps** e seleziona la Devin App.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/Eif_NNHmp1Px-KLi/images/enterprise/ghes-app/ghes-developer-settings-apps.png?fit=max&auto=format&n=Eif_NNHmp1Px-KLi&q=85&s=ecb51f6bd5c69af15a9baa9bbbd95fd0" alt="Developer Settings - GitHub Apps" width="3840" height="1970" data-path="images/enterprise/ghes-app/ghes-developer-settings-apps.png" />
</Frame>

3. Nella sezione **Advanced**, sotto **Danger zone**, fai clic su **Make public**. In questo modo la GitHub App può essere installata in altre organizzazioni della stessa istanza.
4. Vai alla sezione **Optional features** e disattiva **User-to-server token expiration**. In questo modo gli utenti non scadono e gli utenti non devono riautorizzare periodicamente la GitHub App.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/Eif_NNHmp1Px-KLi/images/enterprise/ghes-app/ghes-token-expiration.png?fit=max&auto=format&n=Eif_NNHmp1Px-KLi&q=85&s=1464c705255791100d0b73abe98d9cb3" alt="Impostazione di scadenza del token user-to-server" width="3840" height="1980" data-path="images/enterprise/ghes-app/ghes-token-expiration.png" />
</Frame>

<div id="step-3-install-the-github-app">
  ### Passaggio 3: Installa la GitHub App
</div>

1. Nel tuo account Devin, vai a **Enterprise Settings** → **Integrations** → **GitHub**.
2. Espandi la sezione **Advanced** e fai clic su **Install App**.
3. Nella finestra modale, seleziona la GitHub App registrata nella tua istanza GHES o GHEC.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/Eif_NNHmp1Px-KLi/images/enterprise/ghes-app/ghes-install-app-modal.png?fit=max&auto=format&n=Eif_NNHmp1Px-KLi&q=85&s=aa91656d28604c82cedb3da957c9d6de" alt="finestra modale Install App" width="3840" height="1982" data-path="images/enterprise/ghes-app/ghes-install-app-modal.png" />
</Frame>

4. Verrai reindirizzato a GitHub, dove potrai scegliere un'organizzazione GitHub e selezionare i repository a cui concedere l'accesso a Devin. Consigliamo di concedere l'accesso a **tutti i repository**.
5. Dopo aver completato l'installazione, verrai reindirizzato di nuovo a Devin. Una nuova connessione Git verrà visualizzata in **Settings** → **Integrations** → **GitHub**.

Ripeti questo passaggio per ogni organizzazione GitHub aggiuntiva che vuoi collegare.

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

Se riscontri problemi durante la registrazione o l'installazione della GitHub App, contatta il tuo referente Cognition o scrivi a [enterprise@cognition.ai](mailto:enterprise@cognition.ai).

***

<div id="personal-access-token-setup">
  ## Configurazione del token di accesso personale
</div>

Integrare Devin con GitHub consente a Devin di accedere ai tuoi repository e aprire pull request. In questo modo Devin può diventare un vero collaboratore del tuo team di ingegneria.

<div id="create-a-service-account-for-devin">
  ### **Crea un account di servizio per Devin**
</div>

1. All'interno della tua istanza di GitHub Enterprise, crea un nuovo account GitHub da usare per Devin. Questo è importante per garantire che tutti gli accessi e l'utilizzo di Devin possano essere tracciati e gestiti correttamente.
2. Aggiungi il nuovo account di servizio a tutte le organizzazioni GitHub pertinenti come **Membro**. Verifica che l'account abbia accesso a tutti i repository a cui Devin deve accedere.

<div id="generate-a-personal-access-token-for-devin">
  ### **Generare un Personal Access Token per Devin**
</div>

1. Quando hai effettuato l'accesso con l'account di servizio, fai clic sull'immagine del profilo nell'angolo in alto a destra, quindi fai clic su <Icon icon="gear" iconType="regular" size="16" /> **Settings**.
2. Nella barra laterale sinistra, fai clic su <Icon icon="code" iconType="regular" size="16" /> **Developer settings**.
3. Nella barra laterale sinistra, sotto <Icon icon="key" iconType="regular" size="16" /> **Personal access tokens**, fai clic su **Fine-grained tokens**.
4. Fai clic su **Generate new token**.
5. Compila i campi **Token name** ed **Expiration**.\
   **Nota:** Quando il token scade, Devin perderà immediatamente tutto l'accesso a GitHub e sarà necessario creare un nuovo token.
6. In **Resource owner**, seleziona l'organizzazione corretta.

<Accordion title="Problema comune: l'organizzazione non viene visualizzata" icon="triangle-exclamation">
  Se non visualizzi l'organizzazione corretta in "Resource owner", assicurati che l'enterprise e l'organizzazione abbiano abilitato l'uso dei personal access token con ambito fine (fine-grained).

  #### **Abilitazione nelle impostazioni Enterprise**

  Solo gli Enterprise Admin possono aggiornare queste impostazioni. Assicurati che i personal access token siano abilitati anche nelle impostazioni della specifica organizzazione.

  1. Nell'angolo in alto a destra di GitHub Enterprise Server, fai clic sulla tua immagine del profilo, quindi fai clic su **Enterprise settings**.
  2. Nella parte superiore della pagina, fai clic su <Icon icon="scale-balanced" iconType="regular" size="16" /> **Policies**.
  3. In **Policies**, fai clic su <Icon icon="key" iconType="regular" size="16" /> **Personal access tokens**.
  4. Seleziona la scheda **Fine-grained tokens**.
  5. In **Fine-grained personal access tokens**, abilita l'accesso.
  6. Fai clic su **Save**.

  #### **Abilitazione nelle impostazioni dell'organizzazione**

  Solo gli Organization Admin possono aggiornare queste impostazioni. Assicurati che i personal access token siano abilitati anche nelle impostazioni Enterprise.

  1. Nell'angolo in alto a destra di GitHub, fai clic sulla tua immagine del profilo, quindi fai clic su <Icon icon="building" iconType="regular" size="16" /> **Organizations**.
  2. Accanto all'organizzazione, fai clic su **Settings**.
  3. Nella barra laterale sinistra, sotto <Icon icon="key" iconType="regular" size="16" /> **Personal access tokens**, fai clic su **Settings**.
  4. Seleziona la scheda **Fine-grained tokens**.
  5. In **Fine-grained personal access tokens**, abilita l'accesso per la tua organizzazione.
  6. Fai clic su **Save**.
</Accordion>

7. In **Repository access**, seleziona i repository con cui vuoi che Devin lavori. I token includono sempre l'accesso in sola lettura a tutti i repository pubblici su GitHub.
8. Assicurati che il token abbia le seguenti autorizzazioni, necessarie affinché Devin funzioni correttamente:

| Permission    | Access level   | Description                                                                                              |
| :------------ | :------------- | :------------------------------------------------------------------------------------------------------- |
| Contents      | Read and write | Consenti a Devin di contribuire alla codebase                                                            |
| Issues        | Read and write | Consenti a Devin di aprire nuove issue                                                                   |
| Metadata      | Read only      | Consenti a Devin di visualizzare metadati cruciali su un repository, ad esempio chi ne è il proprietario |
| Pull requests | Read and write | Consenti a Devin di creare nuove PR (pull request)                                                       |

Autorizzazioni aggiuntive aiuteranno Devin a collaborare meglio con il tuo team, a seconda del tipo di lavoro che gli chiedi di svolgere.

9. Fai clic su **Generate Token** e salva il token visualizzato.\
   **Nota:** Potrebbe essere necessaria l'approvazione di un admin, a seconda delle impostazioni di GitHub.
10. Per verificare che il token abbia tutti gli accessi e le autorizzazioni necessari, **crea e fai il push di un branch di test** dalla tua macchina locale a un repository dell'organizzazione.
11. Una volta che il token è stato generato e testato, contatta il tuo referente Cognition per completare il processo di configurazione. Se al momento non stai lavorando direttamente con il nostro team, contatta [enterprise@cognition.ai](mailto:enterprise@cognition.ai).

<div id="validating-pat-permissions-locally">
  ### **Verificare localmente le autorizzazioni del PAT**
</div>

Prima di condividere il token con Cognition, verifica che abbia le autorizzazioni corrette eseguendo il push di un branch di test:

```bash theme={null}
# Autenticati con gh CLI utilizzando il tuo token
export GH_TOKEN=your_personal_access_token
export GH_HOST=your-github-enterprise-server.com

# Clona il repository
gh repo clone your-organization/your-repository
cd your-repository

# Crea un branch di test
git checkout -b test-devin-token-$(date +%s)

# Apporta una piccola modifica
echo "# Test" >> TEST.md
git add TEST.md
git commit -m "Test: Validate Devin token permissions"

# Esegui il push del branch (verifica il permesso di scrittura dei contenuti)
git push origin HEAD

# Crea una pull request (verifica il permesso di scrittura delle pull request)
gh pr create --title "Test: Validate Devin token permissions" \
  --body "This is a test PR to validate token permissions." \
  --base main

# Pulizia: chiudi la PR di test ed elimina il branch di test
gh pr close pr-number --delete-branch
```

**Risultati attesi:** Il push e la creazione della PR devono andare a buon fine senza errori di autenticazione. Se il push non riesce, verifica che il token abbia l'autorizzazione "Contents: Read and write". Se la creazione della PR non riesce, verifica che il token abbia l'autorizzazione "Pull requests: Read and write".

<div id="using-devin-with-the-github-integration">
  ## **Utilizzare Devin con l'integrazione GitHub**
</div>

Ora che GitHub è integrato, puoi configurare quali sotto-organizzazioni di Devin hanno accesso a ciascun repository (consulta [Autorizzazioni del repository](/it/enterprise/integrations/git-integrations#repository-permissions))

Una volta completata l'integrazione, puoi accedere all'applicazione web di Devin e @menzionare qualsiasi repository nei tuoi prompt.

Se stai utilizzando un repository per la prima volta, ti consigliamo di seguire il [processo di configurazione dell'ambiente di sviluppo nel flusso di onboarding](/it/onboard-devin/environment) per garantire che Devin disponga delle informazioni più accurate e aggiornate su come lavorare con la tua codebase.

<Tip>Devin risponderà automaticamente a qualsiasi commento su una pull request finché la sessione non viene archiviata</Tip>

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

Alcune informazioni aggiuntive riguardo alle autorizzazioni di Devin in GitHub:

* Consigliamo di abilitare le protezioni sul branch master per garantire che le verifiche vengano eseguite e rispettate prima che Devin possa eseguire il merge di qualsiasi modifica.
* Se Devin è connesso all'account GitHub della tua organizzazione, avrà le stesse autorizzazioni di qualsiasi utente con accesso alle organizzazioni GitHub e Devin.
* Devin non rispecchia le autorizzazioni dell'utente che sta eseguendo una sessione con Devin, ma mantiene le autorizzazioni concesse a livello di organizzazione.
* Devin non può creare nuovi repository nel tuo account GitHub.
