Webhooks einrichten

Auf dieser Seite wird beschrieben, wie Sie Webhooks in Secure Source Manager einrichten.

Webhooks sind HTTP-Anfragen, die durch ein Ereignis in Secure Source Manager ausgelöst und an eine vom Nutzer angegebene URL gesendet werden.

Hinweise

  1. Secure Source Manager-Instanz erstellen
  2. Secure Source Manager-Repository erstellen

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Webhooks benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Informationen zum Zuweisen von Secure Source Manager-Rollen finden Sie unter Zugriffssteuerung mit IAM und Nutzern Instanzzugriff gewähren.

Webhook einrichten

  1. Rufen Sie in der Secure Source Manager-Weboberfläche das Repository auf, für das Sie einen Webhook erstellen möchten.
  2. Klicken Sie auf Einstellungen.
  3. Klicken Sie auf Webhooks und dann auf Webhook hinzufügen.
  4. Geben Sie im Feld Hook-ID eine ID für den Webhook ein.

  5. Geben Sie im Feld Ziel-URL die Webhook-URL ein. Wenn Sie beispielsweise einen Build in Jenkins auslösen möchten, können Sie einen Webhook-Trigger einrichten und dann hier die Jenkins-Trigger-URL eingeben, um den Build in Jenkins auszulösen.

  6. Wenn die Webhook-URL die Schlüssel- und Geheimniswerte enthält, die Sie beim Erstellen des Webhook-Triggers eingegeben haben, entfernen Sie sie vom Ende der Ziel-URL und kopieren Sie sie in das Feld Sensitiver Abfragestring.

    Wenn Sie Ihren Schlüssel und Ihr Secret in Ihrer Webhook-URL finden möchten, suchen Sie nach dem Text, der mit key= beginnt.

    Beispiel: Bei der folgenden URL: https://cloudbuild.googleapis.com/v1/projects/my-project/triggers/test-trigger:webhook?key=eitIfKhYnv0LrkdsyHqIros8fbsheKRIslfsdngf&secret=Hello%20Secret%20Manager

    Kopieren Sie den Teil ab dem Fragezeichen ?key=... aus dem Feld Ziel-URL und entfernen Sie ihn. Entfernen Sie dann das ursprüngliche Fragezeichen und verschieben Sie den verbleibenden Teil key=... in das Feld Sensibler Abfragestring.

  7. Wählen Sie im Bereich Auslösen bei eine der folgenden Optionen aus:

    • Push: wird ausgelöst, wenn ein Push an das Repository erfolgt.
    • Pull-Anfrage-Status geändert: Wird ausgelöst, wenn sich der Status der Pull-Anfrage ändert.
  8. Wenn Sie Push ausgewählt haben, können Sie im Feld Branch-Filter eine Zulassungsliste für Push-Ereignisse eingeben.

    Im Feld Branch filter wird das Glob-Muster verwendet. Nur Vorgänge in den übereinstimmenden Branches lösen einen Build aus. Wenn das Feld leer oder * ist, werden Push-Ereignisse für alle Zweige gemeldet. Informationen zur Syntax finden Sie in der glob-Dokumentation.

  9. Klicken Sie auf Add webhook (Webhook hinzufügen).

  10. Der Webhook wird auf der Seite Webhooks angezeigt.

Webhook testen

  1. Klicken Sie in Secure Source Manager auf der Seite Webhooks auf den Webhook, den Sie testen möchten.
  2. Klicken Sie unten auf der Seite auf Zustellung testen.

    Der Zustellungswarteschlange wird ein Platzhalterereignis hinzugefügt. Es kann einige Sekunden dauern, bis sie im Zustellungsverlauf angezeigt wird.

  3. Sie können auch einen git-Befehl verwenden, um einen Pull-Request zu pushen oder zusammenzuführen und den Webhook zu testen.

  4. Prüfen Sie den Status des ausgelösten Builds oder Ereignisses im Build-Verlauf des Dienstes, in dem Sie den Webhook-Trigger konfiguriert haben.

  5. Nachdem Sie Ihre erste Testübermittlung gesendet haben, können Sie sich auf der Webhook-Seite von Secure Source Manager im Bereich Letzte Übermittlungen auch die Anfrage und Antwort für die Testübermittlung ansehen.

Cloud Build-YAML-Variablen durch Nutzlastdaten ersetzen

Wenn Sie Webhooks verwenden, um eine Verbindung zu Cloud Build herzustellen, können Sie Cloud Build-YAML-Variablen durch Daten aus der Secure Source Manager-Webhook-Nutzlast ersetzen.

  1. Klicken Sie in Secure Source Manager auf der Seite Webhooks im Bereich Letzte Zustellungen auf die oberste Zeile.

    Der Request-Header und der Inhalt, der von der Webhook-Nutzlast gesendet wird, werden angezeigt.

  2. Rufen Sie das Cloud Build-Dashboard auf und klicken Sie auf Trigger.

  3. Klicken Sie auf den Trigger, den Sie konfigurieren möchten.

  4. Klicken Sie im Bereich „Erweitert“ unter Substitutionsvariablen auf + Variable hinzufügen.

  5. Geben Sie den Namen und den Wert der Variablen ein. Das Wertpräfix ist body.

    Wenn Sie beispielsweise _REPO_URL durch das Nutzlastdatenfeld repository.clone_url und _COMMIT_SHA durch den SHA des letzten Commits in der Cloud Build-YAML-Datei ersetzen möchten, geben Sie die folgenden Namen und Werte ein:

    • Variable 1: _REPO_URL Wert 1: $(body.repository.clone_url)
    • Variable 2: _COMMIT_SHA Wert 2: $(body.after)

    Die Cloud Build-YAML-Datei sieht in etwa so aus:

    steps:
    - name: gcr.io/cloud-builders/git
      env:
      - '_REPO_URL=$_REPO_URL'
      - '_COMMIT_SHA=$_COMMIT_SHA'
      script: |
        #!/bin/sh
        git clone ${_REPO_URL} /workspace
        cd /workspace
        git reset --hard ${_COMMIT_SHA}
    

Nächste Schritte