Skip to main content

Panoramica

Questa guida illustra la configurazione completa per integrare un’istanza GitLab con Devin, inclusa sia la Configurazione Admin sia la configurazione per l’utente finale. Devin supporta GitLab Self-Managed dalla versione 15.0 in poi. L’integrazione si articola in due parti:
  1. Configurazione Admin
    • Collega a Devin l’istanza GitLab self-hosted dell’organizzazione
    • Configura un account di servizio
    • Configura l’accesso ai repository
    • Registra OAuth in modo che gli utenti possano collegare le proprie identità GitLab personali
  2. Configurazione utente
    • Collega l’account GitLab di un utente al proprio account Devin
La Configurazione Admin deve essere completata prima che qualsiasi utente possa collegare il proprio account GitLab. Solo gli amministratori Enterprise possono eseguire i passaggi della Configurazione Admin.

Parte 1: Configurazione Admin

Passaggio 1: Crea un account di servizio in GitLab

In GitLab:
  1. Vai al gruppo GitLab corretto
  2. Vai a Settings
  3. Apri Service Accounts
  4. Crea un nuovo account di servizio
Questo account di servizio sarà usato da Devin per accedere ai repository in GitLab.
Crea un account di servizio in GitLab

Passaggio 2: aggiungi l’account di servizio come membro del gruppo

Sempre in GitLab:
  1. Vai alla pagina Members del gruppo
Pagina dei membri del gruppo GitLab
  1. Aggiungi l’account di servizio come membro del gruppo
  2. Assegnagli un ruolo in base alle attività che Devin deve svolgere:
    • Developer è sufficiente per connettere Devin e leggere i repository
    • Maintainer se Devin deve configurare automaticamente i webhook di progetto
    • Owner per i webhook a livello di gruppo (i webhook di gruppo richiedono GitLab Premium o Ultimate)
Questo è necessario affinché l’account di servizio possa accedere ai repository con le autorizzazioni appropriate. L’appartenenza al gruppo si estende a tutti i progetti del gruppo.

Passaggio 3: Genera un token di accesso personale per l’account di servizio

Dopo aver creato l’account di servizio:
  1. Individua l’account di servizio appena creato
  2. Fai clic sui tre puntini > Gestisci i token di accesso > Genera un nuovo token di accesso personale > Seleziona api tra gli ambiti di accesso
  3. Copia e conserva il token in modo sicuro
Assicurati di selezionare il token dell’account di servizio, e non il token di accesso personale che trovi nelle preferenze del tuo account utente. Devin deve agire come l’account di servizio, non come te. Userai questo token quando aggiungerai la connessione GitLab in Devin.

Passaggio 4: Aggiungi la connessione GitLab in Devin

In Devin:
  1. Vai a Enterprise Settings
  2. Apri Connections
  3. Aggiungi una nuova connessione
  4. Inserisci:
    • L’URL del tuo GitLab self-hosted (se applicabile)
Aggiungi l'URL della connessione GitLab
  • Il token di accesso personale creato per l’account di servizio
In questo modo viene creata la connessione GitLab a livello enterprise.

Passaggio 5: Configurare il webhook

Configurando un webhook, Devin riceve automaticamente notifiche in tempo reale quando si verificano determinati eventi in GitLab (ad esempio l’apertura o l’aggiornamento di merge request e l’aggiunta di commenti alle merge request). Per configurare il webhook:
  1. In Devin, vai su Settings > Connections > GitLab e fai clic sulla connessione GitLab appena aggiunta per aprirne il pannello dei dettagli
  2. Nella scheda General, fai clic su Configure nella riga Webhook
  3. Copia l’URL del webhook e il Token segreto dalla finestra di dialogo
  4. Segui i passaggi Group (consigliato) o Project indicati nella finestra di dialogo per aggiungere il webhook in GitLab, selezionando i trigger Comments, Merge request events, Push events, Issues events e Pipeline events
Per aggiungere un webhook in GitLab è necessario il ruolo Maintainer sul progetto oppure, per i webhook di gruppo (Premium o Ultimate), il ruolo Owner sul gruppo. Se la configurazione automatica dei webhook è disponibile per la tua organizzazione, la finestra di dialogo segnala che Devin configura i webhook su tutti i progetti e i gruppi che l’account di servizio può amministrare; ciò funziona solo dove l’account di servizio dispone di tali ruoli (vedi Passaggio 2). Se non puoi assegnare all’account di servizio il ruolo Maintainer o Owner, un utente GitLab con questo livello di accesso può aggiungere il webhook manualmente utilizzando l’URL e il token segreto indicati nella finestra di dialogo.
Una volta configurato il webhook, Devin potrà rispondere agli eventi di GitLab in tempo reale, senza dover ricorrere al polling periodico.

Passaggio 6: Verifica dell’accesso ai repository

Dopo aver aggiunto la connessione:
  1. Conferma che il account di servizio abbia accesso ai repository che vuoi utilizzare
  2. In Devin, se i repository non compaiono subito, aggiorna manualmente l’elenco dei repository
  3. Vai a Repository Enterprise
  4. Seleziona l’organizzazione corretta
Repository Enterprise
  1. Apri Gestisci autorizzazioni
  2. Aggiungi i repository pertinenti con le autorizzazioni lettura/scrittura appropriate
Gestisci le autorizzazioni del repository
Se mancano delle repo, potrebbe essere perché Devin aggiorna l’elenco dei repository periodicamente anziché all’istante.

Parte 2: Abilita il collegamento degli utenti per GitLab self-hosted

Passaggio 7: Registrare un’applicazione OAuth sull’istanza GitLab self-hosted

Per consentire ai singoli utenti di collegare la propria identità GitLab a Devin, l’amministratore deve registrare un’app OAuth per l’istanza GitLab self-hosted. In Devin:
  1. Vai all’area di connessione GitLab dell’Enterprise
  2. Apri Avanzate
  3. Vai alla sezione GitLab self-hosted
  4. Avvia la procedura per registrare un’applicazione OAuth
Registrare un'applicazione OAuth

Passaggio 8: Completa la registrazione dell’app OAuth in GitLab

Segui il collegamento nella finestra modale di registrazione per aprire il modulo dell’applicazione GitLab. Compila i campi come indicato:
  1. Imposta Name e Redirect URI esattamente come mostrato nella finestra modale di Devin
  2. Seleziona la casella Confidential
  3. Seleziona l’ambito api
  4. Fai clic su Save application
Impostazioni dell'app OAuth di GitLab
  1. Copia Application ID e Application Secret da GitLab
  2. Torna in Devin e incolla questi valori nella finestra modale di registrazione
  3. Fai clic su Register
In questo modo completi la configurazione lato amministratore necessaria per collegare l’identità degli utenti.

Parte 3: Requisito di appartenenza all’organizzazione

Passaggio 9: assicurati che l’utente appartenga all’organizzazione Devin corretta

Prima che un utente possa collegare il proprio account GitLab, deve essere membro di un’organizzazione Devin con autorizzazioni per i repository GitLab. In Devin:
  1. Vai alla sezione di appartenenza all’organizzazione
  2. Verifica che l’utente faccia parte di un’organizzazione Devin con autorizzazioni per i repository GitLab
  3. In caso contrario, aggiungilo prima
Connessioni personali mostra solo le integrazioni delle organizzazioni a cui appartiene l’utente. Se un utente non fa parte di un’organizzazione Devin con autorizzazioni per i repository GitLab, l’integrazione GitLab potrebbe non essere visualizzata affatto.

Parte 4: Configurazione per l’utente finale

Passaggio 10: Apri Connessioni personali

Come utente finale su Devin:
  1. Vai a Connessioni personali
  2. Cerca l’integrazione GitLab self-hosted
Se non compare, verifica prima l’appartenenza all’organizzazione.
Una volta visualizzata l’integrazione:
  1. Seleziona la connessione GitLab self-hosted
  2. Completa la procedura di collegamento
  3. Collega l’account GitLab dell’utente al suo account Devin
Dopo questo passaggio, Devin dovrebbe essere in grado di operare su GitLab per conto di quell’utente.

Considerazioni sulla sicurezza

  • Credenziali crittografate — Tutti i token sono crittografati e archiviati in modo sicuro, inclusi il token di accesso personale dell’account di servizio, il segreto dell’applicazione OAuth e i token OAuth creati quando gli utenti collegano i propri account GitLab.
  • Crittografia in transito — Tutti i dati sono crittografati sia in transito sia a riposo. Devin si connette alla tua istanza GitLab tramite HTTPS e le consegne dei webhook vengono verificate tramite il token segreto generato durante la configurazione del webhook.
  • Autorizzazione esplicita — La semplice aggiunta della connessione non concede alcun accesso ai repository. I repository devono essere assegnati esplicitamente a un’organizzazione Devin con autorizzazioni di lettura/scrittura in Repository Enterprise > Gestisci autorizzazioni.
  • Accesso con ambito limitato — Devin opera tramite l’account di servizio, quindi il ruolo di quest’ultimo in GitLab (Developer, Maintainer o Owner) e la sua appartenenza ai progetti determinano ciò a cui Devin può accedere.
  • Verificabilità — L’uso di un account di servizio dedicato rende più semplice attribuire le attività di Devin in GitLab.
  • Rispetto delle protezioni dei branch — Le merge request di Devin sono soggette alle stesse regole di protezione dei branch e agli stessi requisiti di approvazione previsti per qualsiasi altro collaboratore.