webhooks

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

In diesem Artikel werden Webhooks und deren Einrichtung für Ihr Azure DevOps-Projekt beschrieben. Webhooks bieten eine Möglichkeit, eine JSON-Darstellung eines Azure DevOps-Ereignisses an jeden Dienst mit einem öffentlichen Endpunkt zu senden.

Hinweis

Azure DevOps berechnet nicht das Einrichten von Service-Hooks oder die Integration in externe Dienste. Informationen zu preisen im Zusammenhang mit ihren Diensten finden Sie auf der Website des jeweiligen Diensts.

Voraussetzungen

Sie benötigen die folgenden Voraussetzungen zum Verwalten von Webhooks für eine Azure DevOps-Organisation:

  • Rolle "Besitzer" oder "Projektsammlungsadministrator " in der Organisation.

  • Ein Projekt in der Organisation und ein Dienst mit einem öffentlichen HTTP- oder HTTPS-Endpunkt, an den Sie Azure DevOps-Ereignisse senden möchten.

    Wichtig

    Es wird empfohlen, nur HTTPS-Endpunkte zu verwenden. HTTP hat das Potenzial, private Daten zu senden, einschließlich Authentifizierungsheadern, unverschlüsselt in der Ereignisnutzlast. Sie müssen HTTPS für die Standardauthentifizierung in einem Webhook verwenden.

Senden einer JSON-Darstellung an einen Dienst

  1. Wechseln Sie in Ihrem Azure DevOps-Projekt zu Project-Einstellungsdienst-Hooks> unter .https://<organization-name>/<project-name>/_settings/serviceHooks

    Screenshot der Auswahl von Diensthaken in den Project-Einstellungen.

  2. Wählen Sie auf der Seite "Service Hooks " das + Symbol oder "Abonnement erstellen" aus.

    Screenshot der Auswahl von

  3. Wählen Sie auf dem Dienstbildschirm Web Hooks und dann "Weiter" aus.

    Screenshot der Auswahl von Web hooks auf der Seite

  4. Wählen Sie auf dem Triggerbildschirm das Azure DevOps-Ereignis aus, für das Sie den Webhook auslösen möchten, und konfigurieren Sie es, und wählen Sie dann "Weiter" aus. Weitere Informationen zu den JSON-Nutzlasten, die vom Azure DevOps-Consumer bereitgestellt werden, finden Sie unter Service Hooks-Ereignisse.

    Screenshot der Auswahl und Konfiguration des Triggerereignisses.

  5. Konfigurieren Sie auf dem Aktionsbildschirm die Ziel-URL und was sie tun müssen, wenn das Ereignis eintritt. Weitere Informationen dazu, was in "Ressourcendetails zum Senden" eingegeben werden soll, zu sendende Nachrichten und detaillierte Nachrichten finden Sie unter "Zu sendende Ressourcendetails".

    Hinweis

    Webhooks können nicht auf localhost (Loopback) oder spezielle IPv4 IPv6-Adressen des Bereichs abzielen./

  6. Wählen Sie "Testen " aus, um das Diensthakenabonnement zu testen.

    Screenshot der Konfiguration des Dialogfelds

  7. Wenn der Test erfolgreich abgeschlossen ist, schließen Sie den Benachrichtigungsbildschirm, und wählen Sie dann auf dem Bildschirm "Aktion" die Option "Fertig stellen" aus.

    Screenshot der Testergebnisse für das Diensthakenabonnement

  8. Jetzt ist der Webhook eingerichtet. Wechseln Sie zum Zieldienst, um die JSON-Darstellung anzuzeigen.

    Screenshot der Anzeige der JSON-Darstellung.

Tipp

Sie können einen Webhook auch programmgesteuert erstellen. Weitere Informationen finden Sie unter Programmgesteuertes Erstellen eines Diensthakenabonnements.

Zu sendende Ressourcendetails

Die zu sendenden Ressourcendetails, zu sendende Nachrichten und detaillierte Nachrichten zum Senden von Einstellungen im Aktionsbereich steuern die Größe der zu sendenden JSON-Nutzlast. Ressourcendetails zum Senden von Steuerelementen, wie viel der zu sendenden Ressource. Der Standardwert ist "Alle", Aber Sie können auch "Minimal" senden, das nur Schlüsselfelder wie URL und ID oder None sendet.

Keine und Minimal sind in Szenarien hilfreich, in denen der Aufrufer nicht viel oder keine Informationen über die Ressource benötigt, da er sich auf die Nachricht oder die detaillierte Nachricht selbst stützt. "None" und "Minimal " sind auch aus Sicherheitsgründen nützlich. Der Aufrufer muss sich wieder an Azure DevOps Services wenden und normale Sicherheits- und Berechtigungsprüfungen durchlaufen, um weitere Details zur Ressource zu erhalten.

Das folgende Beispiel-JSON zeigt minimale Details zur Ressource:

   {
       "eventType": "git.push",
       ...
       "messages": {
           "text": "...",
           "html": "...",
           "markdown": "..."
       },
       "detailedMessage": {
           "text": "...",
           "html": "...",
           "markdown": "..."
       },
       "resource": {
           "id": "...",
           "url": "https://...",
           "name": "...",
           "field1:": "..."
       }
   }