Zum Hauptinhalt springen

GitLab-Integration

Verbinden Sie Ihre GitLab-Repositories mit ArchiCore für automatische Analyse.

Funktionen

  • Self-hosted-Unterstützung — Verbinden Sie gitlab.com oder Ihre eigene GitLab-Instanz
  • Mehrere Instanzen — Verbinden Sie mehrere GitLab-Server gleichzeitig
  • Private Repositories — Vollständiger Zugriff auf private Projekte
  • Branch-Auswahl — Wählen Sie welchen Branch analysiert werden soll
  • Auto-Analyse — Automatische Analyse bei Push-Events
  • Merge Request Reviews — KI-gestützte Code-Reviews für MRs

Einrichtung

Schritt 1: Personal Access Token erstellen

  1. Gehen Sie zu Ihrem GitLab → EinstellungenAccess Tokens
  2. Erstellen Sie einen neuen Token mit diesen erforderlichen Scopes:
    • apiErforderlich für vollständigen API-Zugriff (private Repositories, Webhooks, MR-Kommentare)
    • read_repositoryErforderlich zum Lesen von Repository-Inhalten
Erforderliche Scopes

Für private Repositories ist der api Scope obligatorisch. Ohne ihn kann ArchiCore nicht auf private Projekte zugreifen, auch wenn Sie der Repository-Eigentümer oder Administrator sind.

  1. Kopieren Sie den Token (Sie sehen ihn nicht wieder!)

Schritt 2: GitLab-Instanz verbinden

Über Web-Interface:

  1. Gehen Sie zu ArchiCore → EinstellungenIntegrationen
  2. Klicken Sie auf GitLab hinzufügen
  3. Geben Sie Ihre GitLab-URL ein (z.B. https://gitlab.com oder https://gitlab.firma.com)
  4. Fügen Sie Ihren Personal Access Token ein
  5. Klicken Sie auf Verbinden

Über API:

curl -X POST https://api.archicore.io/api/gitlab/instances \
-H "Authorization: Bearer IHR_ARCHICORE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"instanceUrl": "https://gitlab.firma.com",
"accessToken": "IHR_GITLAB_PAT",
"name": "Firmen GitLab"
}'

Schritt 3: Repository verbinden

  1. Nach dem Verbinden Ihrer GitLab-Instanz klicken Sie auf Projekt hinzufügen
  2. Wählen Sie die GitLab-Instanz
  3. Suchen Sie Ihr Repository
  4. Wählen Sie einen Branch
  5. Klicken Sie auf Verbinden

Self-Hosted GitLab

ArchiCore unterstützt self-hosted GitLab-Instanzen vollständig.

SSL-Zertifikate

Wenn Ihr GitLab ein selbstsigniertes Zertifikat verwendet:

  1. Aktivieren Sie beim Verbinden "Selbstsignierte Zertifikate erlauben"
  2. Oder setzen Sie rejectUnauthorizedSSL: false im API-Aufruf

Netzwerkzugriff

Damit Webhooks funktionieren, muss Ihre GitLab-Instanz den ArchiCore-Webhook-Endpoint erreichen können:

https://api.archicore.io/api/gitlab/webhook

Wenn ArchiCore auch self-hosted ist, konfigurieren Sie GITLAB_WEBHOOK_URL in Ihrer Umgebung.

Mehrere Instanzen

Sie können mehrere GitLab-Instanzen verbinden:

  • gitlab.com (öffentlich)
  • gitlab.firma.com (Unternehmen)
  • gitlab.kunde.com (Kundenprojekte)

Jede Instanz wird separat mit eigenen Anmeldedaten verwaltet.

Webhooks

ArchiCore kann automatisch Webhooks erstellen für:

  • Push-Events — Analyse auslösen wenn Code gepusht wird
  • Merge Request Events — KI-Review-Kommentare zu MRs hinzufügen

Webhook-Einrichtung

Webhooks werden automatisch erstellt, wenn Sie ein Repository mit aktiviertem "Auto-Analyse" verbinden.

Manuelle Webhook-Konfiguration:

  1. Gehen Sie zu Ihrem GitLab-Projekt → EinstellungenWebhooks
  2. URL hinzufügen: https://api.archicore.io/api/gitlab/webhook
  3. Secret Token: (von ArchiCore bereitgestellt)
  4. Aktivieren: Push events, Merge request events

API-Referenz

Instanzen auflisten

GET /api/gitlab/instances

Instanz hinzufügen

POST /api/gitlab/instances
Content-Type: application/json

{
"instanceUrl": "https://gitlab.firma.com",
"accessToken": "glpat-xxxxxxxxxxxx",
"name": "Mein GitLab",
"rejectUnauthorizedSSL": true
}

Projekte auflisten

GET /api/gitlab/instances/{instanceId}/projects?search=meinprojekt

Branches auflisten

GET /api/gitlab/instances/{instanceId}/projects/{projectId}/branches

Repository verbinden

POST /api/gitlab/repositories/connect
Content-Type: application/json

{
"instanceId": "uuid",
"projectId": 123,
"autoAnalyze": true,
"analyzeMRs": true,
"branch": "main"
}

Repository trennen

DELETE /api/gitlab/repositories/{repoId}

Fehlerbehebung

"Ungültiger Token"

  • Ablauf prüfen — Stellen Sie sicher, dass Ihr PAT nicht abgelaufen ist
  • Scopes prüfen — Der Token muss die Scopes api und read_repository haben
  • URL prüfen — Für self-hosted GitLab, stellen Sie sicher, dass die URL korrekt ist (inklusive https://)
  • Token neu erstellen — Bei anhaltenden Problemen erstellen Sie einen neuen Token mit den korrekten Scopes

"SSL-Zertifikatsfehler"

  • Aktivieren Sie "Selbstsignierte Zertifikate erlauben" beim Verbinden
  • Oder fügen Sie Ihr CA-Zertifikat zum System-Truststore hinzu

"Webhook empfängt keine Events"

  • Verifizieren Sie, dass Ihr GitLab die Webhook-URL erreichen kann
  • Prüfen Sie GitLab → Projekt → Einstellungen → Webhooks → Letzte Zustellungen
  • Stellen Sie sicher, dass das Webhook-Secret übereinstimmt

"Repository nicht gefunden"

  • Token-Scopes prüfen — Für private Repositories muss Ihr PAT den api Scope haben. Der read_api Scope allein reicht nicht aus.
  • Token-Berechtigungen prüfen — Auch wenn Sie Repository-Administrator oder -Eigentümer sind, kann ein Token mit falschen Scopes nicht auf private Projekte zugreifen.
  • Vollständigen Pfad eingeben — Verwenden Sie beim Verbinden den vollständigen Repository-Pfad (z.B. gruppe/untergruppe/projekt-name), nicht nur den Projektnamen.
  • Archivierung prüfen — Archivierte Repositories erscheinen möglicherweise nicht in Suchergebnissen.
  • Richtige Instanz prüfen — Stellen Sie sicher, dass Sie den richtigen GitLab-Server betrachten (gitlab.com vs. self-hosted).