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 :- 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
- 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 :- Accédez au groupe GitLab approprié
- Accédez à Settings
- Ouvrez Service Accounts
- Créez un nouveau compte de service

Étape 2 : Ajouter le compte de service comme membre du groupe
Toujours dans GitLab :- Accédez à la page Membres du groupe

- Ajoutez le compte de service au groupe
- 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)
Étape 3 : Générer un jeton d’accès personnel pour le compte de service
Après avoir créé le compte de service :- Repérez le compte de service que vous venez de créer
- 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
- 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 :- Accédez à Enterprise Settings
- Ouvrez Connections
- Ajoutez une nouvelle connexion
- Saisissez :
- l’URL de votre instance GitLab auto-hébergée (le cas échéant)

- le jeton d’accès personnel créé pour le compte de service
É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 :- 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
- Dans l’onglet General, cliquez sur Configure sur la ligne Webhook
- Copiez l’URL et le Secret Token du webhook depuis la boîte de dialogue
- 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.
Étape 6 : Vérifier l’accès aux dépôts
Après avoir ajouté la connexion :- Vérifiez que le compte de service a accès aux dépôts que vous souhaitez utiliser
- Dans Devin, si les dépôts n’apparaissent pas immédiatement, actualisez manuellement la liste des dépôts
- Accédez à Enterprise Repositories
- Sélectionnez l’organisation appropriée

- Ouvrez Manage Permissions
- Ajoutez les dépôts concernés avec les autorisations lecture/écriture appropriées

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 :- Accédez à la section de connexion GitLab de l’Enterprise
- Ouvrez Avancé
- Accédez à la section GitLab auto-hébergé
- Lancez le processus pour 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é :- Renseignez Name et Redirect URI exactement comme indiqué dans la fenêtre modale Devin
- Cochez la case Confidential
- Sélectionnez le périmètre api
- Cliquez sur Save application

- Copiez l’Application ID et l’Application Secret depuis GitLab
- Revenez à Devin et collez ces valeurs dans la fenêtre modale d’enregistrement
- Cliquez sur Register
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 :- Accédez à la section d’appartenance à l’organisation
- Vérifiez que l’utilisateur fait partie d’une organisation Devin disposant des autorisations sur les dépôts GitLab
- 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 :- Accédez à Personal Connections
- Recherchez l’intégration GitLab auto-hébergée
Étape 11 : Associer le compte GitLab de l’utilisateur
Une fois que l’intégration apparaît :- Sélectionnez la connexion GitLab auto-hébergée
- Suivez la procédure d’association
- Associez le compte GitLab de l’utilisateur à son compte Devin
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.

