Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Gunakan kait layanan untuk memberi tahu sistem non-Microsoft tentang peristiwa yang terjadi di proyek Anda. Konsumen kustom mengirim pesan HTTP ke titik akhir yang ditentukan dalam manifes ekstensi Anda.
Petunjuk / Saran
Jika Anda memulai ekstensi Azure DevOps baru, coba koleksi sampel yang dikelola ini terlebih dahulu—mereka bekerja dengan build produk saat ini dan mencakup skenario modern (misalnya, menambahkan tab pada halaman permintaan pull).
- Sampel ekstensi Azure DevOps (GitHub)—sampel starter ringkas yang menunjukkan pola ekstensi umum: https://github.com/microsoft/azure-devops-extension-sample
- Sampel ekstensi Azure DevOps (panduan pengumpulan dan kontribusi warisan)—instal untuk memeriksa target UI, atau lihat sumbernya: https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guide dan https://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Sampel Microsoft Learn (jelajahi sampel Azure DevOps)—sampel yang telah diseleksi, terbaru di seluruh dokumentasi Microsoft: /samples/browse/?terms=azure%20devops%20extension
Jika sampel tidak berfungsi di organisasi Anda, instal ke organisasi pribadi atau pengujian dan bandingkan ID target manifes ekstensi dan versi API dengan dokumen saat ini. Untuk referensi dan API, lihat:
- azure-devops-extension-api
- azure-devops-extension-sdk
- API ekstensi yang diinstal
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:
- Mengirim pesan HTTP
Nota
Artikel ini mengacu pada direktori home untuk proyek Anda sebagai home.
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.
Petunjuk / Saran
Lihat dokumentasi terbaru kami tentang pengembangan ekstensi menggunakan Azure DevOps Extension SDK.
Cara Kerja Pengait Layanan
Hook layanan penerbit menentukan serangkaian kejadian. Langganan mendengarkan event dan menentukan tindakan yang berjalan ketika event memicu.
Diagram ini menunjukkan alur hook layanan umum: penerbit memancarkan peristiwa, langganan cocok dengan peristiwa, dan tindakan yang dijalankan saat kecocokan terjadi. Dalam contoh artikel ini, ekstensi mengimplementasikan pengguna. Ketika peristiwa yang didukung terjadi, tindakan konsumen yang dikonfigurasi mengirimkan pesan HTTP ke titik akhir yang Anda tentukan dalam manifes ekstensi.
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"
}
}
]
}
}
]
}
Nota
Ingat untuk memperbarui properti publisher.
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-properti yang khusus untuk setiap jenis kontribusi.
Konsumen memiliki properti berikut.
| Harta benda | Deskripsi |
|---|---|
| id | ID unik untuk layanan konsumen Anda. |
| Nama | Nama konsumen khusus, yang terlihat selama pembuatan langganan webhook layanan. |
| deskripsi | Menjelaskan layanan konsumen Anda. |
| URL informasi | Temukan informasi selengkapnya tentang ekstensi Anda. |
| deskriptor masukan | Input yang akan digunakan oleh pengguna yang membuat langganan dengan layanan konsumen. |
| Tindakan | Menjelaskan tindakan yang harus diambil dan peristiwa mana yang memicu tindakan tersebut. |
Tindakan untuk konsumen Anda memiliki karakteristik berikut:
| Harta benda | Deskripsi |
|---|---|
| id | ID untuk layanan tindakan Anda. |
| Nama | Nama tindakan. |
| deskripsi | Deskripsi terperinci tentang tindakan tersebut. |
| tipeAcaraYangDidukung | Susunan jenis pemicu untuk mana tindakan ini dapat digunakan. Untuk informasi selengkapnya, lihat Daftar jenis peristiwa. |
| publishEvent.url | URL titik akhir yang menerima pesan HTTP. Anda dapat membuat templat nilai ini dengan token dari inputDescriptors; pengguna memberikan nilai aktual saat mereka membuat langganan. |
- Sebarkan ekstensi Anda ke organisasi Azure DevOps Anda dan uji.