Tworzenie niestandardowego konsumenta dla punktów zaczepienia usługi
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Za pomocą punktów zaczepienia usług można powiadamiać systemy innych firm o zdarzeniach występujących w projekcie. Możesz użyć niestandardowego konsumenta, aby wysłać komunikat HTTP do punktu końcowego zdefiniowanego w manifeście rozszerzenia.
W tym artykule opisano tworzenie rozszerzenia, które implementuje przykładową usługę konsumenta, która obejmuje następujące zdarzenia i akcje.
- Obsługiwane zdarzenia, które wyzwalają następujące akcje:
- Wypchnięty kod
- Utworzone żądanie ściągnięcia
- Zaktualizowano żądanie ściągnięcia
- Obsługiwane akcje do wykonania w przypadku wystąpienia zdarzeń:
- Wykonaj akcję (Wyślij komunikat HTTP)
Uwaga
W tym artykule odwołujemy się do katalogu macierzystego projektu jako "strona główna".
Aby uzyskać więcej informacji, zobacz przykładowe repozytorium GitHub rozszerzenia. Aby uzyskać listę wszystkich obsługiwanych zdarzeń, których można użyć jako wyzwalaczy dla niestandardowego rozszerzenia odbiorcy, zobacz Lista typów zdarzeń.
Napiwek
Zapoznaj się z naszą najnowszą dokumentacją dotyczącą programowania rozszerzeń przy użyciu zestawu SDK rozszerzenia usługi Azure DevOps.
Jak działają punkty zaczepienia usługi
Wydawcy punktów zaczepienia usługi definiują zestaw zdarzeń. Subskrypcje nasłuchiwać i czekać na zdarzenia i definiować akcje po wyzwoleniu zdarzenia.
Jest to ogólny opis sposobu działania wszystkich implementacji punktów zaczepienia usługi. W naszym przypadku określamy naszego konsumenta zdefiniowanego przez rozszerzenie, a także określoną akcję w przypadku wystąpienia zdarzenia.
Tworzenie rozszerzenia
Dodaj konkretny wkład do niestandardowej implementacji odbiorcy do podstawowego pliku manifestu. Zapoznaj się z poniższym przykładem sposobu, w jaki manifest powinien wyglądać po dodaniu udziału.
{
"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"
}
}
]
}
}
]
}
Uwaga
Pamiętaj, aby zaktualizować publisher
właściwość .
Dla każdego udziału w rozszerzeniu manifest definiuje następujące elementy.
- Typ udziału — usługa konsumenta (ms.vss-servicehooks.consumer) w tym przypadku
- Docelowy udział — usługi konsumenckie (ms.vss-servicehooks.consumer) w tym przypadku
- Właściwości specyficzne dla każdego typu współtworzenia
Użytkownicy mają następujące właściwości.
Właściwości | opis |
---|---|
identyfikator | Unikatowy identyfikator usługi konsumenckiej. |
name | Nazwa użytkownika niestandardowego, który jest widoczny podczas tworzenia subskrypcji przypinania usługi. |
opis | Opisuje usługę konsumenta. |
informationUrl | Znajdź więcej informacji na temat rozszerzenia. |
inputDescriptors | Dane wejściowe, które mają być używane przez użytkowników tworzących subskrypcje z usługą konsumenta. |
akcje | Opisuje akcje do wykonania i które zdarzenia wyzwalają te akcje. |
Akcje dla konsumenta mają następujące właściwości:
Właściwości | opis |
---|---|
identyfikator | Identyfikator usługi akcji. |
name | Nazwa akcji. |
opis | Szczegółowy opis akcji. |
supportedEventTypes | Tablica typów wyzwalaczy, dla których można użyć tej akcji. Aby uzyskać więcej informacji, zobacz Lista typów zdarzeń. |
publishEvent.url | Adres URL, do którego jest wysyłany komunikat HTTP. Można go szablonować według wartości dostarczonych przez klasy inputDescriptor. Ich rzeczywiste wartości są definiowane przez użytkownika podczas tworzenia subskrypcji. |
- Wdróż rozszerzenie w organizacji usługi Azure DevOps i przetestuj je.