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".
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.
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
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. |
- Sebarkan ekstensi Anda ke organisasi Azure DevOps Anda dan uji.