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.
Hinweis
- Erstellen Sie eine Secure Source Manager-Instanz.
- Erstellen Sie ein Secure Source Manager-Repository.
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:
- Administrator von Secure Source Manager-Repositories (
roles/securesourcemanager.repoAdmin) für das Secure Source Manager-Repository - Auf Secure Source Manager-Instanzen zugreifende Person (
roles/securesourcemanager.instanceAccessor) für die Secure Source Manager-Instanz
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, siehe Zugriffssteuerung mit IAM und Nutzern Instanzzugriff gewähren.
Webhook einrichten
- Rufen Sie in der Secure Source Manager-Weboberfläche das Repository auf, für das Sie einen Webhook erstellen möchten.
- Klicken Sie auf Einstellungen.
- Klicken Sie auf Webhooks und dann auf Webhook hinzufügen.
Geben Sie im Feld Hook-ID eine ID für den Webhook ein.
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.
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.
Suchen Sie in der Webhook-URL nach dem Text, der mit
key=beginnt, um Ihren Schlüssel und Ihr Geheimnis zu finden.Beispiel:
https://cloudbuild.googleapis.com/v1/projects/my-project/triggers/test-trigger:webhook?key=eitIfKhYnv0LrkdsyHqIros8fbsheKRIslfsdngf&secret=Hello%20Secret%20ManagerKopieren Sie den Teil, der mit dem Fragezeichen
?key=...beginnt, aus dem Feld Ziel-URL und entfernen Sie ihn. Entfernen Sie dann das anfängliche Fragezeichen und verschieben Sie den verbleibenden Teilkey=...in das Feld Sensitiver Abfragestring.Wählen Sie im Bereich Auslösen bei eine der folgenden Optionen aus:
- Push: wird bei einem Push in das Repository ausgelöst.
- Status der Pull-Anfrage geändert: wird bei einer Änderung des Status der Pull Anfrage ausgelöst.
Wenn Sie Push ausgewählt haben, können Sie im Feld Zweigfilter eine Zulassungsliste für Push-Ereignisse eingeben.
Im Feld Zweigfilter wird das Glob-Muster verwendet. Nur Vorgänge für die übereinstimmenden Zweige lösen einen Build-Trigger aus. Beispielsweise löst
{main,dev}Push-Ereignisse für diemainunddevZweige aus. Wenn das Feld leer oder*ist, werden Push-Ereignisse für alle Zweige gemeldet. Informationen zur Syntax finden Sie in der Glob-Dokumentation.Klicken Sie auf Webhook hinzufügen.
Der Webhook wird auf der Seite Webhooks angezeigt.
Webhook testen
- Klicken Sie auf der Seite Webhooks von Secure Source Manager auf den Webhook, den Sie testen möchten.
Scrollen Sie zum Ende der Seite und klicken Sie auf Zustellung testen.
Der Zustellungswarteschlange wird ein Platzhalterereignis hinzugefügt. Es kann einige Sekunden dauern, bis es im Zustellungsverlauf angezeigt wird.
Sie können auch einen
git-Befehl verwenden, um eine Pull-Anfrage per Push zu übertragen oder zusammenzuführen, um den Webhook zu testen.Prüfen Sie den Status des ausgelösten Builds oder Ereignisses im Buildverlauf des Dienstes, in dem Sie den Webhook-Trigger konfiguriert haben.
Sie können sich auch die Anfrage und Antwort für die Testzustellung im Bereich Letzte Zustellungen auf der Secure Source Manager-Webhook-Seite ansehen, nachdem Sie die erste Testzustellung gesendet haben.
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 Secure Source Manager-Webhook-Nutzlastdaten ersetzen.
Klicken Sie auf der Seite Webhooks von Secure Source Manager im Bereich Letzte Zustellungen auf die oberste Zeile.
Der Anfrageheader und der Inhalt, der von der Webhook-Nutzlast gesendet wurde, werden angezeigt.
Rufen Sie das Cloud Build-Dashboard auf und klicken Sie dann auf Trigger.
Klicken Sie auf den Trigger, den Sie konfigurieren möchten.
Klicken Sie im Bereich Erweitert unter Substitutionsvariablen auf + Variable hinzufügen.
Geben Sie den Namen und den Wert der Variablen ein. Das Wertpräfix ist
body.Wenn Sie beispielsweise
_REPO_URLdurch das Nutzlastdatenfeldrepository.clone_urlund_COMMIT_SHAdurch die neueste Commit-SHA in Cloud Build-YAML ersetzen möchten, geben Sie die folgenden Namen und Werte ein:- Variable 1:
_REPO_URLWert 1:$(body.repository.clone_url) - Variable 2:
_COMMIT_SHAWert 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}- Variable 1: