Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Använd tjänstkrokar för att meddela externa system om händelser i ditt Azure DevOps-projekt. Ett anpassat konsumenttillägg skickar ett HTTP POST till en slutpunkt som du konfigurerar när specifika händelser inträffar.
Tips
Om du startar ett nytt Azure DevOps-tillägg kan du prova dessa underhållsexempelsamlingar först – de fungerar med aktuella produktversioner och täcker moderna scenarier (till exempel att lägga till flikar på sidor med pull-begäranden).
- Azure DevOps-tilläggsexempel (GitHub) – ett kompakt startexempel som visar vanliga tilläggsmönster: https://github.com/microsoft/azure-devops-extension-sample
- Azure DevOps-tilläggsexempel (guide för äldre samlingar och bidrag) – installera för att inspektera UI-mål eller visa källan: https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guide och https://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Microsoft Learn-exempel (bläddra bland Azure DevOps-exempel) – kuraterade, up-to-date-exempel i Microsoft-dokument: /samples/browse/?terms=azure%20devops%20extension
Installera det i en personlig organisation eller testorganisation om ett exempel inte fungerar i din organisation och jämför mål-ID för tilläggsmanifestet och API-versioner med de aktuella dokumenten. För referens och API:er, se:
Den här artikeln visar hur du skapar ett tillägg som implementerar en exempelkonsumenttjänst. Den exempel konsumenten:
- Lyssnar efter tre Git-händelser: kod som pushats, pull-förfrågan har skapats och pull-förfrågan har uppdaterats.
- Skickar ett HTTP POST med händelsenyttolasten till en konfigurerbar slutpunkts-URL
För komplett källkod, se GitHub-repo för tilläggsexempel. Alla tillgängliga händelsetyper finns i Service Hook-händelsetyper.
Tips
För den senaste utvecklingsvägledningen för tillägg, inklusive teman och migrering från VSS. SDK, se utvecklarportalen för Azure DevOps Extension SDK.
Så här fungerar service-krokar
Tjänstkrokar har tre komponenter:
- Utgivare genererar händelser, till exempel "kod som pushas" eller "pull-begäran har skapats".
- Prenumerationer matchar specifika händelser med åtgärder.
- Konsumenter definierar vilka åtgärder som ska köras, till exempel att skicka en HTTP POST.
I den här artikeln implementerar tillägget en anpassad konsument. När en matchande händelse inträffar skickar konsumenten ett HTTP POST med händelsenyttolasten till slutpunkts-URL:en som konfigurerats i prenumerationen.
Skapa tillägget
1. Konfigurera projektet
Skapa ditt tilläggsprojekt. Anvisningar finns i Utveckla ett webbtillägg.
2. Lägg till konsumentbidraget
Lägg till konsumentbidraget i manifestfilen (vss-extension.json). I följande exempel visas ett fullständigt manifest med en servicehook-konsument.
{
"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"
}
}
]
}
}
]
}
Anmärkning
Uppdatera egenskapen så att den publisher matchar ditt utgivar-ID.
Matrisen contributions är nyckelavsnittet. Varje bidrag definierar:
-
Typ:
ms.vss-servicehooks.consumer– registrerar en konsumenttjänst -
Mål:
ms.vss-servicehooks.consumers– insamlingen av konsumenttjänster - Egenskaper: Konsumentkonfiguration, inklusive indata och åtgärder (se egenskapsreferens)
3. Paketera, publicera och testa
Paketera och publicera tillägget till din Azure DevOps-organisation. Skapa sedan en service hook-prenumeration som använder din anpassade konsumentmodul för att säkerställa att den fungerar.
Egenskapsreferens
Konsumentegenskaper
| Fastighet | Beskrivning |
|---|---|
| Id-nummer | Unikt ID för konsumenttjänsten. |
| namn | Visningsnamn som visas när användare skapar prenumerationer på service hooks. |
| beskrivning | Beskriver konsumenttjänsten. |
| informationsURL | URL där användarna kan lära sig mer om tillägget. |
| inmatningsbeskrivningar | Indata som användarna anger när de skapar prenumerationer (till exempel en URL-slutpunkt). |
| Åtgärder | Åtgärder som ska vidtas när händelser inträffar och vilka händelsetyper som utlöser varje åtgärd. |
Åtgärdsegenskaper
Varje åtgärd i matrisen actions har följande egenskaper:
| Fastighet | Beskrivning |
|---|---|
| Id-nummer | Unikt ID för åtgärden. |
| namn | Åtgärdens visningsnamn. |
| beskrivning | Beskrivning av vad åtgärden gör. |
| stödjade händelsetyper | Matris med händelsetyps-ID:t som utlöser den här åtgärden. Tillgängliga typer finns i Service Hook-händelsetyper. |
| publishEvent.url | Slutpunkts-URL som tar emot HTTP POST. Använd mustaschsyntaxen för tre klammerparenteser ({{{inputId}}}) för att ersätta värden från inputDescriptors som användare tillhandahåller när de skapar prenumerationen. |