Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Gebruik servicehook om externe systemen op de hoogte te stellen van gebeurtenissen in uw Azure DevOps-project. Een aangepaste consumentenextensie verzendt een HTTP POST naar een eindpunt dat u configureert wanneer specifieke gebeurtenissen plaatsvinden.
Hint
Als u een nieuwe Azure DevOps-extensie start, kunt u deze onderhouden voorbeeldverzamelingen eerst proberen. Ze werken met de huidige productversies en behandelen moderne scenario's (bijvoorbeeld tabbladen toevoegen op pull-aanvraagpagina's).
- Azure DevOps-extensievoorbeeld (GitHub): een compact startersvoorbeeld dat algemene uitbreidingspatronen demonstreert: https://github.com/microsoft/azure-devops-extension-sample
- Voorbeelden van Azure DevOps-extensies (verouderde handleiding voor verzamelingen en bijdragen): installeren om UI-doelen te inspecteren of de bron te bekijken: https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guidehttps://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Microsoft Learn-voorbeelden (bladeren door Azure DevOps-voorbeelden): gecureerde, up-to-datum voorbeelden in Microsoft-documenten: /samples/browse/?terms=azure%20devops%20extension
Als een voorbeeld niet werkt in uw organisatie, installeert u het in een persoonlijke organisatie of testorganisatie en vergelijkt u de doel-id's en API-versies van het extensiemanifest met de huidige documenten. Zie voor naslaginformatie en API's:
In dit artikel wordt beschreven hoe u een extensie bouwt waarmee een voorbeeldconsumentenservice wordt geïmplementeerd. De voorbeeldgebruiker:
- Luistert naar drie Git-gebeurtenissen: code gepusht, pull-aanvraag gemaakt en pull-aanvraag bijgewerkt
- Verzendt een HTTP POST met de nettolading van de gebeurtenis naar een configureerbare eindpunt-URL
Zie de GitHub-opslagplaats voor het extensievoorbeeld voor de volledige bron. Zie Gebeurtenistypen voor servicehook voor alle beschikbare gebeurtenistypen.
Hint
Voor de nieuwste richtlijnen voor uitbreidingsontwikkeling, inclusief thema's en migratie van VSS. SDK raadpleegt u de ontwikkelaarsportal van de Azure DevOps Extension SDK.
Hoe servicehooks werken
Servicehook heeft drie onderdelen:
- Uitgevers verzenden gebeurtenissen, zoals 'code gepusht' of 'pull-aanvraag gemaakt'.
- Abonnementen koppelen specifieke gebeurtenissen aan acties.
- Consumenten definiëren de acties die moeten worden uitgevoerd, zoals het verzenden van een HTTP POST.
In dit artikel implementeert de extensie een aangepaste consument. Wanneer er een overeenkomende gebeurtenis optreedt, verzendt de consument een HTTP POST met de nettolading van de gebeurtenis naar de eindpunt-URL die in het abonnement is geconfigureerd.
De extensie maken
1. Het project instellen
Maak uw extensieproject. Zie Een webextensie ontwikkelen voor instructies.
2. De bijdrage van de consument toevoegen
Voeg de bijdrage van de consument toe aan uw manifestbestand (vss-extension.json). In het volgende voorbeeld ziet u een volledig manifest met een servicehookgebruiker:
{
"manifestVersion": 1,
"id": "samples-service-hooks-consumer",
"version": "0.1.2",
"name": "Service Hooks Sample",
"description": "A simple extension that demonstrates how to contribute a consumer service into service hooks.",
"publisher": "fabrikam",
"public": false,
"icons": {
"default": "images/logo.png"
},
"scopes": [],
"files": [
{
"path": "images",
"addressable": true
}
],
"content": {
"details": {
"path": "readme.md"
}
},
"categories": [
"Developer samples"
],
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"contributions": [
{
"id": "consumer",
"type": "ms.vss-servicehooks.consumer",
"targets": [
"ms.vss-servicehooks.consumers"
],
"properties": {
"id": "consumer",
"name": "Sample Consumer",
"description": "Sample consumer service",
"informationUrl": "https://aka.ms/vsoextensions",
"inputDescriptors": [
{
"id": "url",
"isRequired": true,
"name": "URL",
"description": "URL to post event payload to",
"inputMode": "textbox"
}
],
"actions": [
{
"id": "performAction",
"name": "Perform action",
"description": "Posts a standard event payload",
"supportedEventTypes": [
"git.push",
"git.pullrequest.created",
"git.pullrequest.updated"
],
"publishEvent": {
"url": "{{{url}}}",
"resourceDetailsToSend": "all",
"messagesToSend": "all",
"detailedMessagesToSend": "all"
}
}
]
}
}
]
}
Opmerking
Werk de eigenschap bij zodat deze publisher overeenkomt met uw uitgever-id.
De contributions array is de belangrijkste sectie. Elke bijdrage definieert:
-
Type:
ms.vss-servicehooks.consumer— registreert een consumentenservice -
Doel:
ms.vss-servicehooks.consumers— de verzameling consumentenservices - Eigenschappen: Consumentenconfiguratie, inclusief invoer en acties (zie eigenschapsreferentie)
3. Verpakken, publiceren en testen
Verpak en publiceer de extensie in uw Azure DevOps-organisatie. Maak vervolgens een servicehookabonnement dat gebruikmaakt van uw aangepaste consument om te controleren of het werkt.
Eigenschapsreferentie
Consumenteneigenschappen
| Vastgoed | Beschrijving |
|---|---|
| identiteitskaart | Unieke id voor de consumentenservice. |
| naam | Weergavenaam die verschijnt wanneer gebruikers service-hookabonnementen maken. |
| beschrijving | Beschrijft de consumentenservice. |
| informatie-url | URL waar gebruikers meer informatie over de extensie kunnen vinden. |
| invoerbeschrijvingen | Invoer die gebruikers opgeven bij het maken van abonnementen (bijvoorbeeld een URL-eindpunt). |
| Acties | Acties die moeten worden uitgevoerd wanneer gebeurtenissen plaatsvinden en welke gebeurtenistypen elke actie activeren. |
Actie-eigenschappen
Elke actie in de actions matrix heeft de volgende eigenschappen:
| Vastgoed | Beschrijving |
|---|---|
| identiteitskaart | Unieke id voor de actie. |
| naam | Weergavenaam van de actie. |
| beschrijving | Beschrijving van wat de actie doet. |
| ondersteunde gebeurtenistypen | Matrix van gebeurtenistype-id's die deze actie activeren. Zie de servicehook-gebeurtenistypen voor beschikbare typen. |
| publishEvent.url | Eindpunt-URL die de HTTP POST ontvangt. Gebruik de Mustache-syntaxis met drie accolades {{{inputId}}} om waarden van inputDescriptors te vervangen die gebruikers opgeven bij het aanmaken van een abonnement. |