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
Ekstensi menambahkan kemampuan ke Azure DevOps dengan mendeklarasikan jenis kontribusi dan instans kontribusi. Jenis kontribusi mendefinisikan kontrak (properti dan perilaku) yang harus diterapkan kontribusi jenis tersebut. Kontribusi adalah instans konkret dari jenis kontribusi: hub atau tugas pembangunan.
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
Untuk informasi selengkapnya, lihat:
Jenis kontribusi
Jenis kontribusi menentukan properti dan aturan yang harus diikuti oleh kontribusi jenis tersebut. Jenis kontribusi dapat mengembangkan jenis kontribusi lain, mewarisi atributnya.
Jenis kontribusi umum meliputi:
hubactionbuild-task
Setiap definisi properti meliputi:
- jenis properti (misalnya, string atau boolean)
- apakah properti diperlukan
- nilai default opsional
Contoh
Deklarasi jenis kontribusi dalam manifes terlihat seperti ini:
{
"contributionTypes": [
{
"id": "hub",
"name": "Web Access Hub",
"description": "A hub that appears in the hubs menu at the top of web pages.",
"properties": {
"name": {
"description": "The text to display for the hub",
"type": "string",
"required": true
},
"uri": {
"description": "URI of the contents of the hub page",
"type": "string",
"required": true
},
"order": {
"description": "Optional ordering value indicating the hub's position within the hub group",
"type": "integer"
}
}
}
]
}
Kontribusi
Kontribusi adalah contoh dari jenis kontribusi. Misalnya, hub Queries di bawah grup Hub kerja adalah kontribusi jenis hub dan tugas build Publish Test Results adalah kontribusi jenis build-task.
Semua kontribusi harus menentukan jenis dan menentukan nilai untuk properti apa pun yang diperlukan oleh jenis kontribusi tersebut.
Contoh
Berikut adalah contoh deklarasi kontribusi hub dalam manifes ekstensi:
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Target kontribusi
Kontribusi dapat target satu atau beberapa kontribusi lainnya, yang menciptakan hubungan antara kontribusi dan setiap targetnya. Sistem dapat menemukan kontribusi untuk target pada runtime. Misalnya, kontribusi hub (Explorer) mungkin menargetkan kontribusi hub-group tertentu (Build).
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Saat grup hub ditampilkan, sistem dapat mengkueri kontribusi dari semua hub yang menargetkan grup hub untuk mengetahui hub mana yang harus ditampilkan.
Mengidentifikasi kontribusi dan jenis
Setiap kontribusi dan jenis kontribusi harus memiliki ID unik dalam ekstensi di mana ia dideklarasikan.
Pengidentifikasi kontribusi lengkap mencakup item berikut, yang Anda pisahkan dengan titik . :
- ID Penerbit
- ID Ekstensi
- ID Kontribusi/jenis
Misalnya: ms.vss-web.hub adalah pengidentifikasi lengkap untuk kontribusi berikut:
- ID Penerbit:
ms - ID Ekstensi:
vss-web - ID Kontribusi/jenis:
hub
Anda dapat menggunakan referensi kontribusi relatif dalam manifes ekstensi untuk merujuk pada kontribusi lain atau jenis kontribusi lainnya dalam ekstensi yang sama. Dalam hal ini, penerbit dan ID ekstensi tidak disertakan, dan ID adalah titik . diikuti oleh ID kontribusi. Misalnya, .hub dapat digunakan dalam ekstensi vss-web yang disebutkan sebelumnya sebagai pintasan untuk ms.vss-web.hub.