Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Użyj punktów zaczepienia usług, aby powiadomić systemy firmy innej niż Microsoft o zdarzeniach występujących w projekcie. Niestandardowy użytkownik wysyła komunikat HTTP do punktu końcowego zdefiniowanego w manifeście rozszerzenia.
Wskazówka
Jeśli rozpoczynasz nowe rozszerzenie dla Azure DevOps, wypróbuj najpierw te utrzymywane przykładowe kolekcje — działają one z aktualnymi kompilacjami produktu i obejmują nowoczesne scenariusze, takie jak dodawanie kart na stronach żądań pull request.
- Przykład rozszerzenia usługi Azure DevOps (GitHub) — kompaktowy przykład startowy, który demonstruje typowe wzorce rozszerzeń: https://github.com/microsoft/azure-devops-extension-sample
- Przykłady rozszerzeń usługi Azure DevOps (przewodnik dotyczący starszej kolekcji i współtworzenia) — instalowanie w celu sprawdzenia celów interfejsu użytkownika lub wyświetlenie źródła: https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guide i https://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Przykłady usługi Microsoft Learn (przeglądanie przykładów usługi Azure DevOps) — wyselekcjonowane, aktualne przykłady w witrynie Microsoft Docs: /samples/browse/?terms=azure%20devops%20extension
Jeśli przykładowa aplikacja nie działa w Twojej organizacji, zainstaluj ją w organizacji testowej lub osobistej i porównaj docelowe identyfikatory oraz wersje API manifestu rozszerzenia z bieżącymi dokumentami. Aby uzyskać informacje i interfejsy API, sprawdź:
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ń:
- Wysyłanie komunikatu HTTP
Uwaga / Notatka
Ten artykuł odnosi się do katalogu macierzystego projektu jako strony głównej.
Aby uzyskać więcej informacji, zobacz repozytorium GitHub z przykładem 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ń.
Wskazówka
Zapoznaj się z naszą najnowszą dokumentacją dotyczącą programowania rozszerzeń przy użyciu zestawu SDK rozszerzenia usługi Azure DevOps.
Jak działają haki serwisowe
Wydawcy hooków usługowych definiują zestaw zdarzeń. Subskrypcje nasłuchują zdarzeń i definiują akcje uruchamiane po wyzwoleniu zdarzenia.
Ten diagram przedstawia ogólny przepływ hooków serwisowych: wydawcy emitują zdarzenia, subskrypcje dopasowują zdarzenia, a akcje są uruchamiane po wystąpieniu dopasowania. W przykładzie z tego artykułu rozszerzenie implementuje konsumenta. W przypadku wystąpienia obsługiwanego zdarzenia skonfigurowana akcja odbiorcy wysyła komunikat HTTP do punktu końcowego określonego w manifeście rozszerzenia.
Tworzenie rozszerzenia
Dodaj specyficzny wkład dotyczący niestandardowej implementacji odbiorcy do podstawowego pliku manifestu. Zobacz poniższy przykład, jak manifest powinien wyglądać po dodaniu wkładu.
{
"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 / Notatka
Pamiętaj, aby zaktualizować publisher atrybut.
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.
- Element docelowy wkładu — usługi konsumenckie (ms.vss-servicehooks.consumers) w tym przypadku.
- Właściwości specyficzne dla każdego typu wkładu.
Konsumenci mają następujące właściwości.
| Majątek | Opis |
|---|---|
| id | Unikatowy identyfikator usługi konsumenckiej. |
| nazwa | Nazwa niestandardowego klienta, która jest widoczna podczas tworzenia subskrypcji webhook. |
| opis | Opisuje usługę konsumenta. |
| URL informacji | Znajdź więcej informacji na temat rozszerzenia. |
| deskryptory wejścia | Dane wejściowe, które mają być używane przez użytkowników tworzących subskrypcje z usługą dla konsumenta. |
| działania | Opisuje akcje do wykonania i które zdarzenia wyzwalają te akcje. |
Akcje dla konsumenta mają następujące właściwości:
| Majątek | Opis |
|---|---|
| id | Identyfikator dla twojej usługi akcji. |
| nazwa | Nazwa akcji. |
| opis | Szczegółowy opis akcji. |
| obsługiwaneTypyZdarzeń | 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 punktu końcowego, który odbiera komunikat HTTP. Tę wartość można szablonować przy użyciu tokenów z elementu inputDescriptors; użytkownicy udostępniają rzeczywiste wartości podczas tworzenia subskrypcji. |
- Wdróż rozszerzenie w organizacji usługi Azure DevOps i przetestuj je.