Hizmet kancaları için özel tüketici oluşturma
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Hizmet kancalarıyla, projenizde gerçekleşen olayları üçüncü taraf sistemlere bildirebilirsiniz. Uzantının bildiriminde tanımlanan uç noktaya HTTP iletisi göndermek için özel bir tüketici kullanabilirsiniz.
Bu makalede, aşağıdaki olayları ve eylemleri içeren örnek bir tüketici hizmeti uygulayan bir uzantı geliştirme adımları verilmiştir.
- Aşağıdaki eylemleri tetikleyen desteklenen olaylar:
- Kod gönderildi
- Çekme isteği oluşturuldu
- Çekme isteği güncelleştirildi
- Olaylar gerçekleştiğinde yapılması gereken eylemler desteklenir:
- Eylem yap (HTTP iletisi gönder)
Not
Bu makalede projenizin giriş dizinine "home" adı verilir.
Daha fazla bilgi için Bkz . GitHub deposu uzantısı örneği. Özel tüketici uzantınız için tetikleyici olarak kullanabileceğiniz tüm desteklenen olayların listesi için bkz . Olay türlerinin listesi.
İpucu
Azure DevOps Uzantı SDK'sını kullanarak uzantı geliştirmeyle ilgili en yeni belgelerimize göz atın.
Hizmet kancaları nasıl çalışır?
Hizmet kancası yayımcıları bir olay kümesi tanımlar. Abonelikler olayları dinler ve bekler ve olayın ne zaman tetiklanacağına ilişkin eylemleri tanımlar.
Bu, tüm hizmet kancası uygulamalarımızın nasıl çalıştığını gösteren genel bir açıklamadır. Bizim durumumuzda, bir uzantı tarafından tanımlanan tüketicimizi ve bir olayın gerçekleştiği zaman için belirtilen eylemi belirtiriz.
Uzantıyı oluşturma
Uzantınızı sıfırdan nasıl oluşturacağınız hakkında bilgi alın.
Özel tüketici uygulamasına özel katkıyı temel bildirim dosyanıza ekleyin. Katkıyı ekledikten sonra bildiriminizin nasıl görüneceğine ilişkin aşağıdaki örneğe bakın.
{
"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"
}
}
]
}
}
]
}
Not
Özelliğini güncelleştirmeyi publisher
unutmayın.
Uzantınızdaki her katkı için bildirim aşağıdaki öğeleri tanımlar.
- Katkı türü - bu örnekte tüketici hizmeti (ms.vss-servicehooks.consumer)
- Katkı hedefi - bu durumda tüketici hizmetleri (ms.vss-servicehooks.consumers)
- Her katkı türüne özgü özellikler
Tüketiciler aşağıdaki özelliklere sahiptir.
Özellik | Açıklama |
---|---|
id | Tüketici hizmetinizin benzersiz kimliği. |
Adı | Hizmet kancası aboneliği oluşturma sırasında görünür olan özel tüketicinin adı. |
açıklama | Tüketici hizmetinizi açıklar. |
informationUrl | Uzantınız hakkında daha fazla bilgi edinin. |
inputDescriptors | Tüketici hizmetiyle abonelik oluşturan kullanıcılar tarafından kullanılacak girişler. |
eylemler | Yapılması gereken eylemleri ve bu eylemleri tetikleyen olayları açıklar. |
Tüketicinizin eylemleri aşağıdaki özelliklere sahiptir:
Özellik | Açıklama |
---|---|
id | Eylem hizmetinizin kimliği. |
Adı | Eylemin adı. |
açıklama | Eylemin ayrıntılı açıklaması. |
supportedEventTypes | Bu eylemin kullanılabilmesi için tetikleyici türleri dizisi. Daha fazla bilgi için bkz . Olay türlerinin listesi. |
publishEvent.url | HTTP iletisinin gönderildiği URL. inputDescriptors tarafından sağlanan değerler tarafından şablonlanabilir. Abonelik oluşturulduğunda gerçek değerleri kullanıcı tarafından tanımlanır. |
- Uzantınızı Azure DevOps kuruluşunuza dağıtın ve test edin.