Webhook

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

Webhooks är ett sätt att skicka en JSON-representation av en händelse till valfri tjänst. Det enda som krävs är en offentlig slutpunkt (HTTP eller HTTPS).

Mer information om JSON-nyttolaster som publicerats av den här konsumenten finns i händelser.

Förutsättningar

Endast organisationsägare eller projektsamlingsadministratörer kan hantera webhooks för en organisation.

Skicka JSON-representation till en tjänst

  1. Gå till projektets tjänstkroksida :

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

    Skärmbild av den senaste versionen av sidan Projektadministration

    Välj Skapa prenumeration.

  2. Välj och konfigurera Azure DevOps Services-händelsen:

    Konfigurera händelsedialogrutan

  3. Konfigurera vad du ska göra när händelsen inträffar:

    Se följande Q &A för information om resursinformation som ska skickas, Meddelanden att skicka och Detaljerade meddelanden för att skicka inställningar.

    Konfigurera åtgärdsdialogrutan

  4. Testa prenumerationen på tjänstkroken och slutför guiden:

    Testa den

Nu har webhooken konfigurerats. Gå till måltjänsten för att visa JSON-representationen:

Visa JSON-representationen

Prissättning

Azure DevOps debiterar inte för ramverket för integrering med externa tjänster. Kolla in den specifika tjänstens webbplats för priser relaterade till deras tjänster.

Frågor och svar

F: Vad är resursinformationen som ska skickas, Meddelanden att skicka och Detaljerade meddelanden att skicka inställningar för?

S: De styr storleken på JSON-nyttolasten som skickas.

Inställningen Resursinformation som ska skickas styr hur mycket av resursen som skickas. Standardvärdet är Alla, men du kan också välja att skicka Minimal (skickar bara nyckelfält som URL och ID) eller Ingen.

Ingen och Minimal är användbara i scenarier där anroparen faktiskt inte behöver mycket, om något, om resursen eftersom den förlitar sig på meddelandet eller det detaljerade meddelandet. Ingen och Minimal är också användbara av säkerhetsskäl, till exempel måste anroparen anropa tillbaka till Azure DevOps Services och gå igenom vanliga säkerhets-/behörighetskontroller för att få mer information om resursen.

Exempel på JSON:

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

F: Kan jag programmatiskt skapa prenumerationer?

S: Ja, se information här.

F: Kan jag skicka webhooks till icke HTTPS-slutpunkter?

S: Ja. Vi rekommenderar dock att du bara använder HTTPS-slutpunkter för dina webhooks. Att använda HTTP innebär att det finns en potential för att privata data skickas okrypterade. Detta inkluderar alla autentiseringshuvuden i din webhook.

F: Kan jag använda grundläggande autentisering när jag konfigurerar en webhook som inte är HTTPS?

S: Nej. Du måste använda HTTPS när du använder grundläggande autentisering på en webhook.

F: Kan vi använda localhost- eller specialintervall-IP-adresser som webhookmål?

S: Nej. Webhooks kan inte rikta in sig på localhost (loopback) eller IPv4/IPv6-adresser för specialintervall.