Vytvoření vlastního příjemce pro volání služeb
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Pomocí volání služeb můžete informovat systémy třetích stran o událostech, ke kterým dochází v projektu. Vlastní příjemce můžete použít k odeslání zprávy HTTP do koncového bodu definovaného v manifestu rozšíření.
Tento článek vás provede vývojem rozšíření, které implementuje ukázkovou službu příjemce, která zahrnuje následující události a akce.
- Podporované události, které aktivují následující akce:
- Vložený kód
- Žádost o přijetí změn vytvořená
- Žádost o přijetí změn byla aktualizována.
- Podporované akce, které se mají provést, když dojde k událostem:
- Akce Provést (odeslat zprávu HTTP)
Poznámka:
V tomto článku odkazujeme na domovský adresář vašeho projektu jako "home".
Další informace najdete v ukázkovém úložišti GitHubu v příkladu rozšíření. Seznam všech podporovaných událostí, které můžete použít jako triggery pro vlastní rozšíření příjemce, najdete v tématu Seznam typů událostí.
Tip
Projděte si nejnovější dokumentaci k vývoji rozšíření pomocí sady SDK rozšíření Azure DevOps.
Jak fungují háky služby
Vydavatelé háku služby definují sadu událostí. Odběry naslouchají a čekají na události a definují akce pro aktivaci události.
Toto je obecný popis toho, jak fungují všechny implementace háku služby. V našem případě určíme příjemce definovaný rozšířením a také zadanou akci pro případ, kdy dojde k události.
Vytvoření rozšíření
Přidejte konkrétní příspěvek pro implementaci vlastního příjemce do základního souboru manifestu. Podívejte se na následující příklad toho, jak by měl manifest vypadat po přidání příspěvku.
{
"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"
}
}
]
}
}
]
}
Poznámka:
Nezapomeňte aktualizovat publisher
vlastnost.
Pro každý příspěvek ve vašem rozšíření manifest definuje následující položky.
- Typ příspěvku – služba příjemce (ms.vss-servicehooks.consumer) v tomto případě
- Cíl příspěvku – služby příjemců (ms.vss-servicehooks.consumer) v tomto případě
- Vlastnosti specifické pro každý typ příspěvku
Uživatelé mají následující vlastnosti.
Vlastnost | Popis |
---|---|
ID | Jedinečné ID služby příjemce. |
name | Název vlastního příjemce, který se zobrazí při vytváření předplatného hooku služby. |
description | Popisuje vaši spotřebitelskou službu. |
informationUrl | Přečtěte si další informace o rozšíření. |
inputDescriptors | Vstupy, které budou používat uživatelé, kteří vytvářejí předplatná se službou příjemce. |
akce | Popisuje akce, které se mají provést a které události tyto akce aktivují. |
Akce pro uživatele mají následující vlastnosti:
Vlastnost | Popis |
---|---|
ID | ID pro vaši službu akcí. |
name | Název akce. |
description | Podrobný popis akce |
supportedEventTypes | Pole typů aktivačních událostí, pro které lze tuto akci použít. Další informace najdete v tématu Seznam typů událostí. |
publishEvent.url | Adresa URL, do které se odešle zpráva HTTP. Lze ho vytvořit pomocí hodnot poskytovaných inputDescriptory. Jejich skutečné hodnoty jsou definovány uživatelem při vytvoření předplatného. |
- Nasaďte rozšíření do organizace Azure DevOps a otestujte ho.