Bagikan melalui


Membuat konsumen kustom untuk kait layanan

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Dengan kait layanan, Anda dapat memberi tahu sistem pihak ketiga tentang peristiwa yang terjadi di proyek Anda. Anda dapat menggunakan konsumen kustom untuk mengirim pesan HTTP ke titik akhir yang ditentukan dalam manifes ekstensi.

Artikel ini membahas pengembangan ekstensi yang mengimplementasikan contoh layanan konsumen, yang mencakup peristiwa dan tindakan berikut.

  • Peristiwa yang didukung yang memicu tindakan berikut:
    • Kode didorong
    • Permintaan pull dibuat
    • Permintaan pull diperbarui
  • Tindakan yang didukung untuk diambil saat peristiwa terjadi:
    • Lakukan tindakan (Kirim pesan HTTP)

Catatan

Dalam artikel ini, kami menyebut direktori beranda untuk proyek Anda sebagai "rumah".

Contoh layanan konsumen

Untuk informasi selengkapnya, lihat Contoh ekstensi repositori GitHub. Untuk daftar semua peristiwa yang didukung yang dapat Anda gunakan sebagai pemicu untuk ekstensi konsumen kustom Anda, lihat Daftar jenis peristiwa.

Tip

Lihat dokumentasi terbaru kami tentang pengembangan ekstensi menggunakan Azure DevOps Extension SDK.

Cara kerja kait layanan

Penerbit hook layanan menentukan serangkaian peristiwa. Langganan mendengarkan dan menunggu peristiwa dan menentukan tindakan saat peristiwa dipicu.

Diagram hook layanan

Ini adalah deskripsi umum tentang cara kerja semua implementasi kait layanan kami. Untuk kasus kami, kami menentukan konsumen kami yang ditentukan oleh ekstensi, serta tindakan yang ditentukan saat peristiwa terjadi.

Membuat ekstensi

  1. Lihat cara membuat ekstensi Anda dari awal.

  2. Tambahkan kontribusi khusus untuk implementasi konsumen kustom ke file manifes dasar Anda. Lihat contoh berikut tentang bagaimana manifes Anda akan terlihat setelah Anda menambahkan kontribusi.

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

Catatan

Ingatlah untuk memperbarui publisher properti.

Untuk setiap kontribusi dalam ekstensi Anda, manifes menentukan item berikut.

  • Jenis kontribusi - layanan konsumen (ms.vss-servicehooks.consumer) dalam hal ini
  • Target kontribusi - layanan konsumen (ms.vss-servicehooks.consumers) dalam hal ini
  • Properti yang khusus untuk setiap jenis kontribusi

Konsumen memiliki properti berikut.

Properti Deskripsi
id ID unik untuk layanan konsumen Anda.
nama Nama konsumen kustom, yang terlihat selama pembuatan langganan kait layanan.
description Menjelaskan layanan konsumen Anda.
informationUrl Temukan informasi selengkapnya tentang ekstensi Anda.
inputDescriptors Input yang akan digunakan oleh pengguna yang membuat langganan dengan layanan konsumen.
actions Menjelaskan tindakan yang harus diambil dan peristiwa mana yang memicu tindakan tersebut.

Tindakan untuk konsumen Anda memiliki properti berikut:

Properti Deskripsi
id ID untuk layanan tindakan Anda.
nama Nama tindakan.
description Deskripsi terperinci tentang tindakan tersebut.
supportedEventTypes Array jenis pemicu yang dapat digunakan tindakan ini. Untuk informasi selengkapnya, lihat Daftar jenis peristiwa.
publishEvent.url URL tempat pesan HTTP dikirim. Ini dapat di-template oleh nilai yang disediakan oleh inputDescriptors. Nilai aktual mereka ditentukan oleh pengguna saat langganan dibuat.
  1. Sebarkan ekstensi Anda ke organisasi Azure DevOps Anda dan uji.

Langkah berikutnya