Skip to main content

Überblick

Diese Anleitung beschreibt das vollständige Setup für die Integration einer GitLab-Instanz mit Devin, einschließlich des Admin-Setups und des Nutzer-Setups. Devin unterstützt GitLab Self-Managed ab Version 15.0. Die Integration besteht aus zwei Teilen:
  1. Admin-Setup
    • Die self-hosted GitLab-Instanz der Organisation mit Devin verbinden
    • Ein Dienstkonto einrichten
    • Den Repository-Zugriff konfigurieren
    • OAuth registrieren, damit Nutzer ihre persönlichen GitLab-Identitäten verknüpfen können
  2. Nutzer-Setup
    • Das GitLab-Konto eines einzelnen Nutzers mit seinem Devin-Konto verknüpfen
Das Admin-Setup muss abgeschlossen sein, bevor Nutzer ihr GitLab-Konto verknüpfen können. Nur Enterprise-Admins können die Schritte des Admin-Setups durchführen.

Teil 1: Admin-Setup

Schritt 1: Ein Dienstkonto in GitLab erstellen

In GitLab:
  1. Gehen Sie zur richtigen GitLab-Gruppe
  2. Navigieren Sie zu Settings
  3. Öffnen Sie Service Accounts
  4. Erstellen Sie ein neues Dienstkonto
Dieses Dienstkonto verwendet Devin, um in GitLab auf Repositories zuzugreifen.
Dienstkonto in GitLab erstellen

Schritt 2: Das Dienstkonto als Member der Gruppe hinzufügen

Weiter in GitLab:
  1. Gehen Sie zur Members-Seite der Gruppe
GitLab-Seite für Gruppen-Member
  1. Fügen Sie das Dienstkonto als Member der Gruppe hinzu
  2. Weisen Sie ihm eine Rolle zu, je nachdem, welche Aufgaben Devin übernehmen soll:
    • Developer genügt, um Devin zu verbinden und Repositorys zu lesen
    • Maintainer, wenn Devin Projekt-Webhooks automatisch einrichten soll
    • Owner für Webhooks auf Gruppenebene (Gruppen-Webhooks erfordern GitLab Premium oder Ultimate)
Dies ist erforderlich, damit das Dienstkonto angemessen auf Repositories zugreifen kann. Die Gruppenmitgliedschaft gilt für alle Projekte der Gruppe.

Schritt 3: Ein Personal Access Token für das Dienstkonto erstellen

Nach dem Erstellen des Dienstkontos:
  1. Suchen Sie das neu erstellte Dienstkonto.
  2. Klicken Sie auf die drei Punkte > Zugriffstokens verwalten > Ein neues persönliches Zugriffstoken generieren > Wählen Sie unter den Zugriffsbereichen api aus.
  3. Kopieren Sie dieses Token und bewahren Sie es sicher auf.
Stellen Sie sicher, dass Sie das Token des Dienstkontos auswählen und nicht Ihr Personal Access Token aus den Nutzereinstellungen. Devin soll als Dienstkonto agieren, nicht in Ihrem Namen. Dieses Token verwenden Sie, wenn Sie die GitLab-Verbindung in Devin hinzufügen.

Schritt 4: Die GitLab-Verbindung in Devin hinzufügen

In Devin:
  1. Gehen Sie zu Enterprise Settings
  2. Öffnen Sie Connections
  3. Fügen Sie eine neue Verbindung hinzu
  4. Geben Sie Folgendes ein:
    • Ihre self-hosted GitLab-URL (falls zutreffend)
GitLab-Verbindungs-URL hinzufügen
  • Das für das Dienstkonto erstellte Personal Access Token
Dadurch wird die GitLab-Verbindung auf Enterprise-Ebene erstellt.

Schritt 5: Webhook konfigurieren

Mit einem konfigurierten Webhook erhält Devin automatisch Echtzeit-Benachrichtigungen, sobald bestimmte Events in GitLab auftreten (z. B. wenn Merge Requests geöffnet, aktualisiert oder kommentiert werden). So konfigurieren Sie den Webhook:
  1. Gehen Sie in Devin zu Settings > Connections > GitLab und klicken Sie auf die soeben hinzugefügte GitLab-Verbindung, um deren Detailbereich zu öffnen
  2. Klicken Sie im Tab General in der Zeile Webhook auf Configure
  3. Kopieren Sie die Webhook-URL und das Secret Token aus dem Dialog
  4. Folgen Sie im Dialog den Schritten für Group (empfohlen) oder Project, um den Webhook in GitLab hinzuzufügen, und wählen Sie dabei die Auslöser Comments, Merge request events, Push events, Issues events und Pipeline events aus
Um in GitLab einen Webhook hinzuzufügen, benötigen Sie die Rolle Maintainer für das Projekt bzw. für Gruppen-Webhooks die Rolle Owner für die Gruppe (Premium oder Ultimate). Ist die automatische Webhook-Einrichtung für Ihre Organisation verfügbar, weist der Dialog darauf hin, dass Devin Webhooks für alle Projekte und Gruppen einrichtet, die das Dienstkonto verwalten kann. Das funktioniert allerdings nur dort, wo das Dienstkonto über diese Rollen verfügt (siehe Schritt 2). Falls Sie dem Dienstkonto die Rolle Maintainer oder Owner nicht zuweisen können, kann ein GitLab-Nutzer mit entsprechenden Berechtigungen den Webhook manuell hinzufügen – mit der URL und dem Secret Token aus dem Dialog.
Nach der Konfiguration kann Devin in Echtzeit auf GitLab-Events reagieren und ist nicht mehr auf regelmäßiges Pollen angewiesen.

Schritt 6: Repository-Zugriff überprüfen

Nach dem Hinzufügen der Verbindung:
  1. Vergewissern Sie sich, dass das Dienstkonto Zugriff auf die Repositorys hat, die Sie verwenden möchten
  2. Wenn Repositorys in Devin nicht sofort angezeigt werden, aktualisieren Sie die Repository-Liste manuell
  3. Gehen Sie zu Enterprise Repositories
  4. Wählen Sie die richtige Organisation aus
Enterprise Repositories
  1. Öffnen Sie Manage Permissions
  2. Fügen Sie die relevanten Repositorys mit den entsprechenden Lese-/Schreibberechtigungen hinzu
Manage repository permissions
Wenn Repos fehlen, kann das daran liegen, dass Devin die Repository-Liste regelmäßig und nicht sofort aktualisiert.

Teil 2: Nutzerverknüpfung für self-hosted GitLab aktivieren

Schritt 7: Eine OAuth-Anwendung in der self-hosted GitLab-Instanz registrieren

Damit einzelne Nutzer ihre GitLab-Identität mit Devin verknüpfen können, muss der Admin für die self-hosted GitLab-Instanz eine OAuth-App registrieren. In Devin:
  1. Gehen Sie zum Bereich für die Enterprise-GitLab-Verbindung
  2. Öffnen Sie Erweitert
  3. Gehen Sie zum Abschnitt für self-hosted GitLab
  4. Starten Sie den Ablauf, um eine OAuth-Anwendung zu registrieren
OAuth-Anwendung registrieren

Schritt 8: OAuth-App-Registrierung in GitLab abschließen

Folgen Sie dem Link im Registrierungs-Modal, um das GitLab-Anwendungsformular zu öffnen. Füllen Sie die Felder wie gezeigt aus:
  1. Stellen Sie Name und Redirect URI genau wie im Devin-Modal gezeigt ein
  2. Aktivieren Sie das Kontrollkästchen Confidential
  3. Wählen Sie den api-Geltungsbereich aus
  4. Klicken Sie auf Save application
GitLab-OAuth-App-Einstellungen
  1. Kopieren Sie die Application ID und das Application Secret aus GitLab
  2. Kehren Sie zu Devin zurück und fügen Sie diese Werte in das Registrierungs-Modal ein
  3. Klicken Sie auf Register
Damit ist die auf Administratorseite erforderliche Einrichtung für die Verknüpfung von Nutzeridentitäten abgeschlossen.

Teil 3: Voraussetzung: Mitgliedschaft in der Organisation

Schritt 9: Stellen Sie sicher, dass der Nutzer zur richtigen Devin-Organisation gehört

Bevor ein Nutzer sein GitLab-Konto verknüpfen kann, muss er Member einer Devin-Organisation mit GitLab-Repositoryberechtigungen sein. In Devin:
  1. Gehen Sie zum Bereich für die Organisationsmitgliedschaft
  2. Vergewissern Sie sich, dass der Nutzer zu einer Devin-Organisation mit GitLab-Repositoryberechtigungen gehört
  3. Falls nicht, fügen Sie ihn zuerst hinzu
Personal Connections zeigt nur Integrationen für Organisationen an, denen der Nutzer angehört. Wenn ein Nutzer keiner Devin-Organisation mit GitLab-Repositoryberechtigungen angehört, wird die GitLab-Integration möglicherweise gar nicht angezeigt.

Teil 4: Setup für Endnutzer

Schritt 10: Personal Connections öffnen

Als Endnutzer in Devin:
  1. Gehe zu Personal Connections
  2. Suche nach der self-hosted GitLab-Integration
Wenn sie nicht angezeigt wird, prüfe zuerst, ob du Mitglied der Organisation bist.
Sobald die Integration angezeigt wird:
  1. Wählen Sie die self-hosted GitLab-Verbindung aus
  2. Schließen Sie den Verknüpfungsvorgang ab
  3. Verknüpfen Sie das GitLab-Konto des Nutzers mit seinem Devin-Konto
Danach sollte Devin GitLab-Vorgänge im Namen dieses Nutzers ausführen können.

Sicherheitsaspekte

  • Verschlüsselte Anmeldedaten — Alle Tokens werden verschlüsselt und sicher gespeichert. Dazu gehören das persönliche Zugriffstoken des Dienstkontos, das Secret der OAuth-Anwendung sowie die OAuth-Tokens, die beim Verknüpfen der GitLab-Konten der Nutzer erstellt werden.
  • Verschlüsselung bei der Übertragung — Alle Daten werden bei der Übertragung und im Ruhezustand verschlüsselt. Devin verbindet sich über HTTPS mit Ihrer GitLab-Instanz, und Webhook-Zustellungen werden anhand des Secret-Tokens verifiziert, das bei der Konfiguration des Webhooks generiert wird.
  • Explizite Autorisierung — Durch das Hinzufügen der Verbindung allein erhält Devin noch keinen Zugriff auf Repositorys. Repositorys müssen einer Devin-Organisation unter Enterprise Repositories > Manage Permissions explizit mit Lese-/Schreibberechtigungen zugewiesen werden.
  • Eingeschränkter Zugriff — Devin agiert über das Dienstkonto. Daher legen dessen Rolle in GitLab (Developer, Maintainer oder Owner) und seine Projektmitgliedschaften fest, worauf Devin zugreifen kann.
  • Nachvollziehbarkeit — Mit einem dedizierten Dienstkonto lassen sich die Aktivitäten von Devin in GitLab leichter zuordnen.
  • Einhaltung von Branch-Schutzregeln — Die Merge Requests von Devin unterliegen denselben Branch-Schutzregeln und Genehmigungsanforderungen wie die aller anderen Mitwirkenden.