Share via


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.

Örnek tüketici hizmeti

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.

Hizmet kancaları diyagramı

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

  1. Uzantınızı sıfırdan nasıl oluşturacağınız hakkında bilgi alın.

  2. Ö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.
  1. Uzantınızı Azure DevOps kuruluşunuza dağıtın ve test edin.

Sonraki adımlar