Skip to main content

Vue d’ensemble

Ce guide présente la configuration complète permettant d’intégrer une instance GitLab à Devin, y compris la configuration d’administration et la configuration utilisateur. Devin prend en charge GitLab autogéré à partir de la version 15.0. L’intégration comporte deux parties :
  1. Configuration d’administration
    • Connecter l’instance GitLab auto-hébergée de l’organisation à Devin
    • Configurer un compte de service
    • Configurer l’accès aux dépôts
    • Enregistrer OAuth afin que les utilisateurs puissent lier leurs identités GitLab personnelles
  2. Configuration utilisateur
    • Lier le compte GitLab d’un utilisateur à son compte Devin
La configuration d’administration doit être terminée avant qu’un utilisateur puisse lier son compte GitLab. Seuls les administrateurs Enterprise peuvent effectuer les étapes de configuration d’administration.

Partie 1 : Configuration d’administration

Étape 1 : Créer un compte de service dans GitLab

Dans GitLab :
  1. Accédez au groupe GitLab approprié
  2. Accédez à Settings
  3. Ouvrez Service Accounts
  4. Créez un nouveau compte de service
Ce compte de service sera utilisé par Devin pour accéder aux dépôts dans GitLab.
Créer un compte de service dans GitLab

Étape 2 : Ajouter le compte de service comme membre du groupe

Toujours dans GitLab :
  1. Accédez à la page Membres du groupe
Page des membres du groupe GitLab
  1. Ajoutez le compte de service au groupe
  2. Accordez-lui un rôle en fonction de ce que Devin doit faire :
    • Developer suffit pour connecter Devin et lire les repositories
    • Maintainer si Devin doit configurer automatiquement les webhooks de projet
    • Owner pour les webhooks au niveau du groupe (les webhooks de groupe nécessitent GitLab Premium ou Ultimate)
C’est nécessaire pour que le compte de service puisse accéder correctement aux repositories. L’appartenance au groupe s’applique à tous ses projets.

Étape 3 : Générer un jeton d’accès personnel pour le compte de service

Après avoir créé le compte de service :
  1. Repérez le compte de service que vous venez de créer
  2. Cliquez sur les trois points > Gérer les jetons d’accès > Générer un nouveau jeton d’accès personnel > sélectionnez api dans les périmètres d’accès
  3. Copiez ce jeton et conservez-le en lieu sûr
Assurez-vous de sélectionner le jeton du compte de service, et non votre jeton d’accès personnel situé dans les préférences de votre compte utilisateur. Devin doit agir en tant que compte de service, et non en votre nom. Vous utiliserez ce jeton lorsque vous ajouterez la connexion GitLab dans Devin.

Étape 4 : Ajouter la connexion GitLab dans Devin

Dans Devin :
  1. Accédez à Enterprise Settings
  2. Ouvrez Connections
  3. Ajoutez une nouvelle connexion
  4. Saisissez :
    • l’URL de votre instance GitLab auto-hébergée (le cas échéant)
Ajouter l’URL de connexion GitLab
  • le jeton d’accès personnel créé pour le compte de service
Cette opération crée la connexion GitLab au niveau de l’entreprise.

Étape 5 : Configurer le webhook

La configuration d’un webhook permet à Devin de recevoir automatiquement des notifications en temps réel lorsque certains événements se produisent dans GitLab (par exemple, l’ouverture ou la mise à jour d’une merge request, ou l’ajout d’un commentaire sur une merge request). Pour configurer le webhook :
  1. Dans Devin, accédez à Settings > Connections > GitLab, puis cliquez sur la connexion GitLab que vous venez d’ajouter pour ouvrir son panneau de détails
  2. Dans l’onglet General, cliquez sur Configure sur la ligne Webhook
  3. Copiez l’URL et le Secret Token du webhook depuis la boîte de dialogue
  4. Suivez les étapes Group (recommandé) ou Project indiquées dans la boîte de dialogue pour ajouter le webhook dans GitLab, en sélectionnant les déclencheurs Comments, Merge request events, Push events, Issues events et Pipeline events
Pour ajouter un webhook dans GitLab, vous devez disposer du rôle Maintainer sur le projet, ou du rôle Owner sur le groupe pour les webhooks de groupe (Premium ou Ultimate). Lorsque la configuration automatique des webhooks est disponible pour votre organisation, la boîte de dialogue précise que Devin configure des webhooks sur chaque projet et groupe que le compte de service peut administrer ; cela ne fonctionne que là où le compte de service dispose de ces rôles (voir l’Étape 2). Si vous ne pouvez pas attribuer le rôle Maintainer ou Owner au compte de service, un utilisateur GitLab disposant de ces droits peut ajouter le webhook manuellement à l’aide de l’URL et du token secret fournis dans la boîte de dialogue.
Une fois le webhook configuré, Devin pourra réagir aux événements GitLab en temps réel, sans dépendre d’une interrogation périodique.

Étape 6 : Vérifier l’accès aux dépôts

Après avoir ajouté la connexion :
  1. Vérifiez que le compte de service a accès aux dépôts que vous souhaitez utiliser
  2. Dans Devin, si les dépôts n’apparaissent pas immédiatement, actualisez manuellement la liste des dépôts
  3. Accédez à Enterprise Repositories
  4. Sélectionnez l’organisation appropriée
Dépôts Enterprise
  1. Ouvrez Manage Permissions
  2. Ajoutez les dépôts concernés avec les autorisations lecture/écriture appropriées
Gérer les autorisations des dépôts
Si certains dépôts sont absents, c’est peut-être parce que Devin actualise la liste des dépôts périodiquement, et non instantanément.

Partie 2 : Activer l’association des utilisateurs pour GitLab auto-hébergé

Étape 7 : Enregistrer une application OAuth sur l’instance GitLab auto-hébergée

Pour permettre aux utilisateurs de lier leur identité GitLab à Devin, l’administrateur doit enregistrer une application OAuth pour l’instance GitLab auto-hébergée. Dans Devin :
  1. Accédez à la section de connexion GitLab de l’Enterprise
  2. Ouvrez Avancé
  3. Accédez à la section GitLab auto-hébergé
  4. Lancez le processus pour enregistrer une application OAuth
Enregistrer une application OAuth

Étape 8 : Finalisez l’enregistrement de l’application OAuth dans GitLab

Suivez le lien dans la fenêtre modale d’enregistrement pour ouvrir le formulaire de l’application GitLab. Remplissez les champs comme indiqué :
  1. Renseignez Name et Redirect URI exactement comme indiqué dans la fenêtre modale Devin
  2. Cochez la case Confidential
  3. Sélectionnez le périmètre api
  4. Cliquez sur Save application
Paramètres de l’application OAuth GitLab
  1. Copiez l’Application ID et l’Application Secret depuis GitLab
  2. Revenez à Devin et collez ces valeurs dans la fenêtre modale d’enregistrement
  3. Cliquez sur Register
Cela finalise la configuration côté administrateur nécessaire à la liaison des identités utilisateur.

Partie 3 : Condition d’appartenance à l’organisation

Étape 9 : Assurez-vous que l’utilisateur appartient à la bonne organisation Devin

Avant de pouvoir lier son compte GitLab, l’utilisateur doit être membre d’une organisation Devin disposant des autorisations sur les dépôts GitLab. Dans Devin :
  1. Accédez à la section d’appartenance à l’organisation
  2. Vérifiez que l’utilisateur fait partie d’une organisation Devin disposant des autorisations sur les dépôts GitLab
  3. Sinon, ajoutez-le d’abord
Personal Connections n’affiche que les intégrations des organisations auxquelles l’utilisateur appartient. Si un utilisateur ne fait pas partie d’une organisation Devin disposant des autorisations sur les dépôts GitLab, l’intégration GitLab peut ne pas apparaître du tout.

Partie 4 : Configuration des utilisateurs finaux

Étape 10 : Ouvrir Personal Connections

En tant qu’utilisateur final de Devin :
  1. Accédez à Personal Connections
  2. Recherchez l’intégration GitLab auto-hébergée
Si elle n’apparaît pas, vérifiez d’abord que vous faites bien partie de l’organisation.
Une fois que l’intégration apparaît :
  1. Sélectionnez la connexion GitLab auto-hébergée
  2. Suivez la procédure d’association
  3. Associez le compte GitLab de l’utilisateur à son compte Devin
Après cela, Devin devrait pouvoir agir au nom de cet utilisateur pour les opérations GitLab.

Considérations de sécurité

  • Credentials chiffrés — Tous les tokens sont chiffrés et stockés de manière sécurisée. Cela inclut le token d’accès personnel du compte de service, le secret de l’application OAuth et les tokens OAuth créés lorsque les utilisateurs associent leurs comptes GitLab.
  • Chiffrement en transit — Toutes les données transmises sont chiffrées en transit et au repos. Devin se connecte à votre instance GitLab via HTTPS, et les livraisons de webhooks sont vérifiées à l’aide du token secret généré lors de la configuration du webhook.
  • Autorisation explicite — L’ajout de la connexion ne donne, à lui seul, accès à aucun repository. Les repositories doivent être explicitement attribués à une organisation Devin avec des autorisations en lecture/écriture dans Enterprise Repositories > Manage Permissions.
  • Accès restreint — Devin agit via le compte de service : son rôle dans GitLab (Developer, Maintainer ou Owner) et l’appartenance de ce compte aux projets déterminent donc les ressources auxquelles Devin peut accéder.
  • Traçabilité — L’utilisation d’un compte de service dédié permet d’identifier plus facilement l’activité de Devin dans GitLab.
  • Respect des protections de branche — Les merge requests de Devin sont soumises aux mêmes règles de protection de branche et exigences d’approbation que celles de n’importe quel autre contributeur.