Aracılığıyla paylaş


Hizmet kancaları için özel bir tüketici oluşturun

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Projenizde gerçekleşen olaylar hakkında Microsoft dışı sistemlere bildirim göndermek için hizmet kancalarını kullanın. Özel tüketici, uzantınızın bildiriminde tanımlanan uç noktaya bir HTTP iletisi 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).

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 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
    • Pull isteği oluşturuldu
    • Pull isteği güncellendi
  • Olaylar gerçekleştiğinde yapılabilecek eylemler:
    • HTTP iletisi gönderme

Uyarı

Bu makale, projenizin ana dizinine home olarak adlandırır.

Kod gönderme ve çekme isteği olayları için HTTP iletileri gönderen örnek bir tüketici hizmetini gösteren diyagram.

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.

Tavsiye

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. Aboneliklerolayları dinler ve bir olay tetiklendiğinde çalıştırılacak eylemleri tanımlar.

Servis kancası akışını gösteren diyagram: Yayımcılar olayları gönderir, abonelikler olayları eşleştirir ve eylemler bir olay abonelikle eşleştiğinde çalıştırılır.

Bu diyagramda genel hizmet kancası akışı gösterilmektedir: yayımcılar olayları yayar, abonelikler olaylarla eşleştir ve bir eşleşme gerçekleştiğinde eylemler çalışır. Bu makaledeki örnekte, bir uzantı tüketiciyi uygular. Desteklenen bir olay gerçekleştiğinde, tüketicinin yapılandırılan eylemi uzantı bildiriminde belirttiğiniz uç noktaya bir HTTP iletisi gönderir.

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"
                        }
                    }
                ]
            }
        }
    ]
}

Uyarı

publisher özelliğini güncellemeyi 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.

Mülkiyet Açıklama
kimlik Tüketici hizmetinizin benzersiz kimliği.
isim 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.
bilgiUrl Uzantınız hakkında daha fazla bilgi edinin.
girdiTanımlayıcılar 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:

Mülkiyet Açıklama
kimlik Eylem hizmetinizin kimliği.
isim Eylemin adı.
Açıklama Eylemin ayrıntılı açıklaması.
DesteklenenOlayTürleri Bu eylemin kullanılabileceği tetikleyici türleri dizisi. Daha fazla bilgi için bkz. Olay türlerinin listesi.
publishEvent.url HTTP iletisini alan uç nokta URL'si. Bu değeri öğesinin inputDescriptorsbelirteçleriyle şablon oluşturabilirsiniz; kullanıcılar aboneliği oluştururken gerçek değerleri sağlar.
  1. Uzantınızı Azure DevOps kuruluşunuza dağıtın ve test edin.

Sonraki Adımlar