Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Azure DevOps projenizdeki olaylar hakkında dış sistemlere bildirim göndermek için hizmet kancalarını kullanın. Özel tüketici uzantısı, belirli olaylar gerçekleştiğinde yapılandırdığınız uç noktaya bir HTTP POST gönderir.
Tavsiye
Yeni bir Azure DevOps uzantısı başlatıyorsanız, önce bu bakımlı örnek koleksiyonları deneyin; bunlar geçerli ürün derlemeleriyle çalışır ve modern senaryoları kapsar (örneğin, çekme isteği sayfalarına sekme ekleme).
- Azure DevOps uzantısı örneği (GitHub)— yaygın uzantı desenlerini gösteren küçük bir başlangıç örneği: https://github.com/microsoft/azure-devops-extension-sample
- Azure DevOps uzantı örnekleri (eski toplama ve katkı kılavuzu)— kullanıcı arabirimi hedeflerini incelemek veya kaynağı görüntülemek için yükleyin: https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guide ve https://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Microsoft Learn örnekleri (Azure DevOps örneklerine göz atın)—Microsoft belgelerinde seçilmiş, güncel örnekler: /samples/browse/?terms=azure%20devops%20extension
Kuruluşunuzda bir örnek çalışmıyorsa, bunu kişisel bir kuruluşa veya test kuruluşuna yükleyin ve uzantı bildiriminin hedef kimliklerini ve API sürümlerini geçerli belgelerle karşılaştırın. Başvuru ve API'ler için bkz:
Bu makale, örnek bir tüketici hizmeti uzantısının nasıl oluşturulacağını gösterir. Örnek tüketici:
- Üç Git olayını dinler: kod gönderildi, çekme isteği oluşturuldu ve çekme isteği güncelleştirildi
- Yapılandırılabilir uç nokta URL'sine olay yükünü içeren bir HTTP POST gönderir
Kaynağın tamamı için bkz. Uzantı örneği GitHub deposu. Tüm kullanılabilir olay türleri için Hizmet kancası olay türleri'ne bakın.
Tavsiye
En son uzantı geliştirme kılavuzu için, tema oluşturma ve VSS.SDK'den geçiş dahil, Azure DevOps Uzantısı SDK geliştirici portalına bakın.
Hizmet kancaları nasıl çalışır?
Hizmet kancalarının üç bileşeni vardır:
- Yayımcılar "kod gönderildi" veya "çekme isteği oluşturuldu" gibi olayları yayar.
- Abonelikler belirli olayları eylemlerle eşleştirilir.
- Tüketiciler , HTTP POST gönderme gibi çalıştırılacak eylemleri tanımlar.
Bu makalede, uzantı özel bir tüketici sınıfını uygular. Eşleşen bir olay gerçekleştiğinde tüketici, olay yükünü abonelikte yapılandırılmış uç nokta URL'sine içeren bir HTTP POST gönderir.
Uzantıyı oluşturma
1. Projeyi ayarlama
Uzantı projenizi oluşturun. Yönergeler için bkz . Web uzantısı geliştirme.
2. Tüketici katkısını ekleyin
Bildirim dosyanıza (vss-extension.json ) tüketici katkısını ekleyin. Aşağıdaki örnekte hizmet kancası tüketicisi ile eksiksiz bir bildirim gösterilmektedir:
{
"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"
}
}
]
}
}
]
}
Uyarı
publisher Özelliğini yayımcı kimliğiniz ile eşleşecek şekilde güncelleştirin.
Dizi contributions kilit bölümdür. Her katkıyı tanımlar:
-
Tür:
ms.vss-servicehooks.consumer— bir tüketici hizmetini kaydeder -
Hedef:
ms.vss-servicehooks.consumers— tüketici hizmetleri koleksiyonu - Özellikler: Girişler ve eylemler de dahil olmak üzere kullanıcı yapılandırması (bkz. özellik başvurusu)
3. Paketle, yayımla ve test et
Uzantıyı paketleyip Azure DevOps kuruluşunuzda yayımlayın. Ardından, çalıştığını doğrulamak için özel tüketici bileşenini kullanan bir servis kancası aboneliği oluşturun.
Mülk referansı
Tüketici özellikleri
| Mülkiyet | Açıklama |
|---|---|
| kimlik | Tüketici hizmetinin benzersiz kimliği. |
| isim | Kullanıcılar webhook abonelikleri oluşturduklarında gösterilen görünen ad. |
| Açıklama | Tüketici hizmetini açıklar. |
| bilgiUrl | Kullanıcıların uzantı hakkında daha fazla bilgi edinebileceği URL. |
| girdiTanımlayıcılar | Kullanıcıların abonelik oluştururken sağladığı girişler (örneğin, bir URL uç noktası). |
| eylemler | Olaylar gerçekleştiğinde yapılması gereken eylemler ve her eylemi tetikleyen olay türleri. |
Eylem özellikleri
Dizideki actions her eylem aşağıdaki özelliklere sahiptir:
| Mülkiyet | Açıklama |
|---|---|
| kimlik | Eylem için benzersiz kimlik. |
| isim | Eylemin görünen adı. |
| Açıklama | Eylemin ne yaptığının açıklaması. |
| DesteklenenOlayTürleri | Bu eylemi tetikleyen olay türü kimliklerinin dizisi. Kullanılabilir türler için bkz Hizmet kancası olay türleri. |
| publishEvent.url | HTTP POST'unu alan uç nokta URL'si. Abonelik oluşturulurken kullanıcıların sağladığı değerlerle {{{inputId}}} yerine koymak için üçlü ayraç Mustache söz dizimini (inputDescriptors) kullanın. |