Webhooks

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

Webhooks bieten eine Möglichkeit, eine JSON-Darstellung eines Ereignisses an einen beliebigen Dienst zu senden. Alles, was erforderlich ist, ist ein öffentlicher Endpunkt (HTTP oder HTTPS).

Weitere Informationen zu den JSON-Nutzlasten, die von diesem Consumer bereitgestellt werden, finden Sie unter Ereignisse.

Voraussetzungen

Nur Organisationsbesitzer oder Project Collection-Administratoren können Webhooks für eine Organisation verwalten.

Senden einer JSON-Darstellung an einen Dienst

  1. Wechseln Sie zur Projektdienst-Hooks-Seite:

    https://{orgName}/{project_name}/_settings/serviceHooks

    Screenshot der neuesten Version der Projektverwaltungsseite

    Klicken Sie auf Abonnement erstellen.

  2. Wählen Sie das Azure DevOps Services-Ereignis aus, und konfigurieren Sie es:

    Konfigurieren des Ereignisdialogfelds

  3. Konfigurieren Sie, was beim Auftreten des Ereignisses zu tun ist:

    Weitere Informationen zu den zu sendenden Ressourcendetails, zu sendenden Nachrichten und detaillierten Nachrichten zum Senden von Einstellungen finden Sie in den folgenden F &A.

    Konfigurieren des Dialogfelds

  4. Testen Sie das Diensthakenabonnement, und schließen Sie den Assistenten ab:

    Testen

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

Anzeigen der JSON-Darstellung

Preisberechnung

Azure DevOps berechnet für das Framework keine Kosten für die Integration in externe Dienste. Auf der Website des jeweiligen Diensts finden Sie preise im Zusammenhang mit ihren Diensten.

Fragen und Antworten

F: Was sind die zu sendenden Ressourcendetails, zu sendende Nachrichten und detaillierte Nachrichten zum Senden von Einstellungen?

A: Sie steuern die Größe der gesendeten JSON-Nutzlast.

Die Ressourcendetails zum Senden der Einstellung steuern, wie viel der Ressource gesendet wird. Der Standardwert ist "Alle", Sie können aber auch "Minimal" (nur Schlüsselfelder wie URL und ID) oder "None" senden.

Keine und Minimal sind in Szenarien nützlich, in denen der Aufrufer tatsächlich nicht viel benötigt, wenn etwas über die Ressource erforderlich ist, da sie sich auf die Nachricht oder die detaillierte Nachricht stützt. "None" und "Minimal " sind auch aus Sicherheitsgründen nützlich, z. B. muss der Aufrufer in Azure DevOps Services zurückrufen und normale Sicherheits-/Berechtigungsprüfungen durchlaufen, um weitere Details zur Ressource zu erhalten.

JSON-Beispielcode:

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

F: Kann ich programmgesteuert Abonnements erstellen?

A: Ja, details finden Sie hier.

F: Kann ich Webhooks an nicht HTTPS-Endpunkte senden?

A: Ja. Es wird jedoch empfohlen, nur HTTPS-Endpunkte für Ihre Webhooks zu verwenden. Die Verwendung von HTTP bedeutet, dass es ein Potenzial für private Daten gibt, die unverschlüsselt gesendet werden. Dazu gehören alle Authentifizierungsheader in Ihrem Webhook.

F: Kann ich beim Einrichten eines Webhooks, der nicht HTTPS ist, die Standardauthentifizierung verwenden?

A: Nein. Sie müssen HTTPS verwenden, wenn Sie die Standardauthentifizierung in einem Webhook verwenden.

F: Können wir localhost- oder spezielle Bereichs-IPs als Webhook-Ziele verwenden?

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