it-swarm.com.de

Wie erstelle ich einen GitLab-Webhook?

Ich habe gelesen, dass GitLab in der Lage ist, Nachrichten über "Web-Hooks" an andere Server zu senden, aber ich kann where one would create one nicht finden.

Kann mich jemand in die richtige Richtung weisen?

38
leech

Alle Antworten, die ich in der offiziellen Dokumentation und auf Stack Overflow zum Auffinden von Web-Hooks gefunden habe, sind falsch. Die Seite admin area > hooks Enthält KEINE Web-Hooks . Es enthält System-Hooks , die beim Erstellen/Löschen von Projekten, Benutzern und dergleichen ausgelöst werden. Das ist nicht was du willst.

Um Ihre Web-Hooks zu finden, rufen Sie die Seite specific project > settings > web hooks (on sidebar in GitLab 6.1.0) auf. Diese werden nach Eingang des betreffenden Projekts ausgelöst. Sie können einen Dienst wie RequestBin verwenden, um zu sehen, wie die Nutzdaten aussehen, und um sicherzustellen, dass Sie diese für Debugging-Zwecke korrekt auslösen.

62
Jamey

Mit der Version 8.16.1 habe ich die Web Hooks unter gefunden

specific project > settings > integrations

enter image description here

23
derwiwie

Für Haken auf Gruppenebene:

besuch: https://gitlab.com/groups/<yourgroup>/hooks

Für Hooks auf Gruppenprojektebene:

besuch: https://gitlab.com/yourgroup/yourproject/hooks

5
Blair Anderson

Sie können ein Beispiel eines GitLab-System-Hooks mit einer web_hook.rb -Erstellung in diesem GitHub-Projekt sehen .

Gehen Sie in gitlab als Administrator zum Tab "Hooks" und erstellen Sie einen Hook als: http: //your.ip.goes.here: 8000

oder ändern Sie den Port in Zeile 175 des Skripts.

Informationen zu Web-Hooks finden Sie unter JameyGenauere Antwort .

Sie können das Ergebnis eines Webhooks mit einem Dienst wie RequestBin überprüfen.
Ein weiteres Beispiel für die Interpretation von Webhooks: diese Frage .

Beachten Sie jedoch, dass bei gitlab webhook noch einige Probleme auftreten:

4
VonC

Ich empfehle die Verwendung von GitLabForm - configuration als Code-Tool für GitLab - um Webhooks mit folgendem Code zu konfigurieren:

project_settings:
  my_group/my_project:
    hooks:
      hooks:
      'http://127.0.0.1:5000/hooks/my-hook-endpoint':
        Push_events: false # this is set to true by GitLab API by default
        merge_requests_events: true
        token: some_secret_auth_token

Offenlegung: Ich habe dieses Tool geschrieben und meine Firma hat es als Open-Source-Lösung bereitgestellt.

3
Greg Dubicki