Referensi manifes ekstensi

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

Setiap ekstensi memiliki file manifes JSON yang menentukan informasi dasar tentang ekstensi. File ini juga mendefinisikan bagaimana file dapat memperluas dan meningkatkan pengalaman. Artikel ini memperlihatkan kepada Anda cara membuat manifes untuk ekstensi Anda ke Azure DevOps.

Tip

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

Buat file bernama vss-extension.json di akar folder ekstensi Anda. File ini berisi atribut yang diperlukan, seperti ID ekstensi dan target penginstalannya, tempat file dapat dijalankan. Ini juga mendefinisikan kontribusi yang dibuat oleh ekstensi Anda.

Lihat contoh manifes umum berikut:

{
    "manifestVersion": 1,
    "id": "tools",
    "version": "0.1.0",
    "name": "Fabrikam Tools",
    "publisher": "fabrikam",
    "description": "Awesome tools to help you and your team do great things everyday.",
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ],
    "icons": {
        "default": "images/fabrikam-logo.png"
    },
    "scopes": [
        "vso.work",
        "vso.code_write",
        "vso.build_execute"
    ],
    "categories": [
        "Azure Boards"
    ],
    "branding": {
        "color": "rgb(34, 34, 34)",
        "theme": "dark"
    },
    "content": {
        "details": {
            "path": "readme.md"
        },
        "license": {
            "path": "eula.md"
        }
    },
    "links": {
        "getstarted": {
            "uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
        },
        "support": {
            "uri": "https://www.fabrikam-fiber-inc.com/support"
        }
    },
    "repository": {
        "type": "git",
        "uri": "https://github.com/fabrikam-fiber-inc/myextension"
    },
    "contributions": [
        {
            "id": "showCommits",
            "type": "ms.vss-web.action",
            "description": "Adds a menu action from builds grid to show associated items.",
            "targets": [
                "ms.vss-build-web.completed-build-menu"
            ],
            "properties": {
                "title": "View associated items",
                "uri": "launch.html"
            }
        }
    ],
    "files": [
        {
            "path": "launch.html",
            "addressable": true
        },        
        {
            "path": "node_modules/vss-web-extension-sdk/lib",
            "addressable": true,
            "packagePath": "lib"
        }
    ]
}

Atribut yang diperlukan

Properti ini diperlukan:

Properti Deskripsi Catatan
manifestVersion Angka yang sesuai dengan versi format manifes. harus 1.
ID Pengidentifikasi ekstensi. ID Th adalah string yang harus unik di antara ekstensi dari penerbit yang sama. Ini harus dimulai dengan karakter alfabet atau numerik dan berisi 'A' melalui 'Z', 'a' hingga 'z', '0' hingga '9', dan '-' (tanda hubung). Contoh: sample-extension.
versi String yang menentukan versi ekstensi. Harus dalam format major.minor.patch, misalnya 0.1.2 atau 1.0.0. Anda juga bisa menambahkan angka keempat untuk format berikut: 0.1.2.3
nama Nama ekstensi singkat yang dapat dibaca manusia. Dibatasi hingga 200 karakter. Contoh: "Fabrikam Agile Board Extension".
penerbit Pengidentifikasi penerbit. Pengidentifikasi ini harus cocok dengan pengidentifikasi tempat ekstensi diterbitkan. Lihat Membuat dan mengelola penerbit.
Kategori Array string yang mewakili kategori yang dimiliki ekstensi Anda. Setidaknya satu kategori harus disediakan dan tidak ada batasan jumlah kategori yang mungkin Anda sertakan. Nilai yang valid: Azure Repos, , Azure BoardsAzure Pipelines, Azure Test Plans, dan Azure Artifacts.

Catatan:
    - Gunakan versi >=0.6.3 dari tfx-cli jika Anda menerbitkan ekstensi secara terprogram.
    - Jika Anda menggunakan ekstensi Tugas Ekstensi Azure DevOps untuk menerbitkan, pastikan versinya = >1.2.8. Anda mungkin harus menyetujui pembaruan ekstensi karena perubahan cakupan terbaru.
    - Kategori yang disebutkan sebelumnya secara asli ada di Visual Studio Marketplace dan Azure DevOps Server 2019 & di atas. Untuk ekstensi yang menargetkan versi TFS yang lebih lama:
      - Jika pelanggan TFS memperoleh ekstensi Anda melalui Visual Studio Marketplace (bukan galeri lokal) dalam konteks terhubung, maka gunakan kategori yang sebelumnya dinyatakan.
      - Jika Anda akan membagikan ekstensi secara langsung (yaitu, bukan melalui Visual Studio Marketplace) dengan pelanggan yang menggunakan TFS <=2018, maka gunakan kategori berikut sebagai gantinya: Kode, Rencanakan dan lacak, Bangun dan rilis, Uji, Berkolaborasi, dan Integrasikan. Jika Anda perlu membagikan keduanya melalui Visual Studio Marketplace dan langsung dengan pelanggan TFS <= 2018 maka Anda harus memiliki 2 paket ekstensi.
Target Produk dan layanan yang didukung oleh integrasi atau ekstensi Anda. Untuk informasi selengkapnya, lihat target penginstalan. Array objek, di mana setiap objek memiliki bidang yang id menunjukkan salah satu hal berikut ini:
    - Microsoft.VisualStudio.Services(ekstensi yang berfungsi dengan Azure DevOps atau TFS),
    Microsoft.TeamFoundation.Server- (ekstensi yang berfungsi dengan TFS),-
    Microsoft.VisualStudio.Services.Integration (integrasi yang berfungsi dengan Azure DevOps atau TFS),
    - Microsoft.TeamFoundation.Server.Integration (integrasi yang berfungsi dengan TFS)

Contoh atribut yang diperlukan

{
    "manifestVersion": 1,
    "id": "tools",
    "version": "0.1.0",
    "name": "Fabrikam Tools",
    "publisher": "fabrikam",
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ]
}

Atribut opsional

Atribut runtime

Properti Deskripsi Catatan
cakupan Array izin daftar cakupan otorisasi (string) yang diperlukan oleh ekstensi Anda. Misalnya, vso.work dan vs.code_write menunjukkan ekstensi Anda memerlukan akses baca-saja ke item kerja dan akses baca/tulis ke kode sumber (dan sumber daya terkait). Cakupan disajikan kepada pengguna saat menginstal ekstensi Anda. Untuk informasi selengkapnya, lihat daftar lengkap cakupan.
Tuntutan Array permintaan (string) yang mencantumkan kemampuan yang diperlukan oleh ekstensi Anda. Misalnya, api-version/3.0 menunjukkan bahwa ekstensi Anda menggunakan API versi 3.0, sehingga tidak dapat berjalan di produk lama yang tidak mendukung versi ini. Untuk informasi selengkapnya, lihat daftar lengkap tuntutan.
baseUri URL dasar (Opsional) untuk semua URL relatif yang ditentukan oleh kontribusi ekstensi. Misalnya: https://myapp.com/{{account.name}}/. Properti ini harus dibiarkan kosong jika konten ekstensi Anda dibungkus dengan ekstensi Anda.
Kontribusi Array kontribusi ke sistem.
contributionTypes Array jenis kontribusi yang ditentukan oleh ekstensi
{
    "scopes": [
        "vso.work",
        "vso.code_write",
        "vso.build_execute"
    ],
    "demands": [
        "api-version/3.0"
    ],
    "contributions": [
        {
            "id": "showCommits",
            "type": "ms.vss-web.action",
            "description": "Adds a menu action from builds grid to show associated items.",
            "targets": [
                "ms.vss-build-web.completed-build-menu"
            ],
            "properties": {
                "title": "View associated items",
                "uri": "launch.html"
            }
        }
    ]
}

Atribut penemuan

Properti opsional ini membantu pengguna menemukan dan mempelajari ekstensi Anda:

Properti Deskripsi Catatan
description Beberapa kalimat yang menjelaskan ekstensi. Dibatasi hingga 200 karakter. Deskripsinya harus berupa "elevator pitch" ekstensi Anda - beberapa baris untuk menggambarkan ekstensi Anda di Marketplace dan membuat orang ingin menginstalnya. Lihat contoh di bawah ini
Ikon Kamus ikon yang mewakili ekstensi. Kunci yang valid: default (128x128 piksel) jenis BMP, GIF, EXIF, JPG, PNG, dan TIFF). Kunci lain seperti large (512x512 piksel) dapat didukung di masa mendatang. Nilai setiap kunci adalah jalur ke file ikon dalam ekstensi
tag Array tag string untuk membantu pengguna menemukan ekstensi Anda. Contoh: agile, , project managementtask timer, dan sebagainya.
Screenshot Array gambar yang tidak dapat disertakan dalam konten Anda. Cuplikan layar lebih berharga saat ditampilkan dalam konten Anda, dan harus digunakan di sana untuk membantu membuat halaman detail pasar berkualitas untuk ekstensi Anda. Gunakan cuplikan layar untuk gambar yang kurang penting yang tidak ditampilkan dalam konten Anda. Setiap gambar harus 1366x768 piksel. Dari path setiap item adalah jalur ke file dalam ekstensi.
Konten Kamus file konten yang menjelaskan ekstensi Anda kepada pengguna. Setiap ekstensi harus menyertakan konten yang solid. Ini adalah cara Anda akan menunjukkan kepada pengguna apa yang dapat dilakukan ekstensi Anda. Jadikan kaya, dapat dikonsumsi, dan sertakan cuplikan layar jika perlu. overview.md Sertakan file sebagai bagian konten dasar Anda. Setiap file diasumsikan dalam format GitHub Flavored Markdown . Dari path setiap item adalah jalur ke file Markdown di ekstensi. Kunci yang valid: details. Kunci lain mungkin didukung di masa mendatang.
Link Kamus tautan yang membantu pengguna mempelajari selengkapnya tentang ekstensi Anda, mendapatkan dukungan, dan memindahkan. Kunci yang valid: getstarted - langkah pertama, cara menyiapkan atau menggunakan. learn - konten yang lebih dalam untuk membantu pengguna lebih memahami ekstensi atau layanan Anda. license - perjanjian lisensi pengguna akhir. privacypolicy - kebijakan privasi untuk ekstensi. support - dapatkan bantuan dan dukungan untuk ekstensi. Nilai setiap kunci adalah objek dengan uri bidang, yang merupakan URL absolut tautan
Repositori Kamus properti yang menjelaskan repositori kode sumber untuk ekstensi Kunci yang Valid: type - Jenis repositori. Contoh: git. uri - URL absolut repositori.
Lencana Array tautan ke lencana metadata eksternal seperti TravisCI, Appveyor, dan sebagainya, dari situs lencana yang disetujui Kunci yang valid: href - Tautkan pengguna menavigasi ke saat memilih lencana. uri - URL absolut gambar lencana yang akan ditampilkan. description - Deskripsi lencana, yang akan ditampilkan di hover.
Branding Kamus properti terkait merek. Kunci yang valid: color - warna utama ekstensi atau penerbit; dapat berupa heks (#ff00ff), RGB (rgb(100.200.50)), atau nama warna HTML yang didukung (biru). theme - melengkapi warna; gunakan gelap untuk warna branding gelap, atau terang untuk warna branding yang lebih terang.

Menandai ekstensi publik

Secara default, semua ekstensi di Azure DevOps Marketplace bersifat privat. Mereka hanya terlihat oleh penerbit dan akun yang dibagikan oleh penerbit. Jika penerbit Anda diverifikasi, Anda dapat membuat ekstensi Anda menjadi publik dengan mengatur Public bendera di manifes ekstensi Anda:

{
    "galleryFlags": [
        "Public"
    ]
}            

Atau:

{
    "public": true
}            

Untuk informasi selengkapnya, lihat Paket/Terbitkan/Instal.

Menandai ekstensi untuk berada dalam pratinjau

Jika ekstensi Anda siap untuk dicoba oleh pengguna di Marketplace, tetapi Anda masih mengerjakan beberapa bug atau menambahkan fungsi, Anda dapat menandainya sebagai preview:

{
    "galleryFlags": [
        "Preview"
    ]
}            

Menandai ekstensi sebagai pratinjau berbayar

Jika Anda ingin menjual ekstensi di Marketplace, tandai sebagai pratinjau berbayar. Ekstensi yang ditandai gratis tidak dapat diubah menjadi berbayar.

{
    "galleryFlags": [
        "Paid",
        "Preview"
    ]
}            

Menandai ekstensi sebagai berbayar

Jika Anda ingin menjual ekstensi di Marketplace, Anda dapat menandainya dengan Paid bendera dan __BYOLENFORCED tag (dimulai dengan dua garis bawah):

{
    "galleryFlags": [
        "Paid"        
    ],
     "tags": [        
        "__BYOLENFORCED"
    ]
}            

Paid Bendera dan __BYOLENFORCED tag harus ada untuk menandai ekstensi sebagai berbayar di Marketplace. Bring-Your-Own-License (BYOL) berarti penerbit ekstensi menyediakan mekanisme penagihan dan lisensi untuk ekstensi, karena tidak disediakan oleh Ekstensi Microsoft untuk Azure DevOps. Semua ekstensi berbayar diperlukan untuk menentukan kebijakan privasi, kebijakan dukungan, dan perjanjian lisensi pengguna akhir. Selain itu, penerbit harus menyediakan konten untuk tab harga di Marketplace sebagai berikut:

{
    "content": {
        "details": {
            "path": "overview.md"
        }, 
        "pricing": {
            "path": "pricing.md"
        }
    }
}          

Anda juga perlu menambahkan bagian baru di manifes ekstensi Anda untuk mengambil alih lisensi berbayar. Di masa mendatang, kami menghapus pemeriksaan lisensi berbayar dan tidak lagi memerlukan penimpaan. Untuk saat ini, pastikan ekstensi Anda ditampilkan seperti yang diharapkan. Setiap penimpaan terdiri dari "ID" dan "perilaku." "ID" harus cocok dengan ID kontribusi yang ditentukan dalam manifes.

"licensing": {

      "overrides": [

        { "id": "my-hub", "behavior": " AlwaysInclude" }
      ]
    }

Jika ekstensi BYOL berbayar Anda menawarkan periode uji coba (kami sarankan demikian), maka Anda dapat menentukan panjang uji coba dalam hari:

{
    "galleryproperties": {
        "trialDays": "30"
    } 
}          

Catatan

Jika Anda ingin menargetkan Azure DevOps, tetapi tidak ingin menampilkan opsi Unduh untuk ekstensi Anda, tambahkan __DoNotDownload tag (dimulai dengan dua garis bawah) ke manifes ekstensi. Jika Anda memindahkan ekstensi dari penagihan &lisensi yang ditawarkan sebelumnya dari Microsoft ke model BYOL, hubungi kami untuk langkah-langkah yang sesuai.

Contoh properti lainnya

{
    "description": "Awesome tools to help you and your team do great things everyday.",
    "icons": {
        "default": "images/fabrikam-logo.png"
    },
    "categories": [
        "Plan and track"
    ],
    "tags": [
        "working",
        "people person",
        "search"
    ],
    "content": {
        "details": {
            "path": "overview.md"
        },
        "license": {
            "path": "license-terms.md"
        }
    },
    "links": {
        "home": {
            "uri": "https://www.fabrikam-fiber-inc.com"
        },
        "getstarted": {
            "uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
        },
        "learn": {
            "uri": "https://www.fabrikam-fiber-inc.com/features"
        },
        "support": {
            "uri": "https://www.fabrikam-fiber-inc.com/support"
        },
        "repository": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools"
        },
        "issues": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools/issues"
        }
    },
    "repository": {
        "type": "git",
        "uri": "https://github.com/fabrikam-fiber-inc/tools"
    },
    "badges": [
        {
            "href": "https://travis.ci/fabrikam-fiber-inc/myextension",
            "uri": "https://travis.ci/fabrikam-fiber-inc/myextension.svg?branch=master",
            "description": "TravisCI build for the project"
        },
        {
            "href": "https://ci.appveyor.com/projects/fabrikam-fiber-inc/myextension",
            "uri": "https://ci.appveyor.com/api/projects/status/vlg2sgs2y7tsdxpj4c?svg=true",
            "description": "AppVeyor build for the project"
        }
    ],
    "branding": {
        "color": "rgb(34, 34, 34)",
        "theme": "dark"
    },
    "screenshots": [
        {
            "path": "screenshots/screen1.png"
        },
        {
            "path": "screenshots/screen2.png"
        }
    ]
}

Contoh halaman detail

  • 1 - deskripsi
  • 2 - ikon
  • 3 - kategori
  • 4 - cuplikan layar
  • 5 - konten (detail)
  • 6 - tautan
  • 7 - branding

card

T & A Marketplace - Properti CustomerQnASupport

Semua ekstensi di Visual Studio Marketplace memiliki bagian Tanya Jawab Umum untuk memungkinkan percakapan publik satu-satu antara pengguna ekstensi dan penerbit. Penerbit dapat memilih antara T&A Marketplace, masalah GitHub, atau URL Tanya Jawab Kustom. Anda dapat menonaktifkan Tanya Jawab di Marketplace menggunakan properti CustomerQnASupport dalam manifes.

Pengalaman default (Tidak diperlukan perubahan pada manifes)

  • Untuk ekstensi dengan repositori GitHub, Marketplace mengalihkan pengguna di bagian Tanya Jawab ke masalah GitHub terkait.
  • Untuk ekstensi tanpa repositori GitHub, Tanya Jawab Marketplace diaktifkan.

Untuk pengalaman yang berbeda dari salah satu opsi default, gunakan properti CustomerQnASupport dalam manifes.

{
    "CustomerQnASupport": {
        "enablemarketplaceqna": true,
        "url": "http://uservoice.visualstudio.com"
    } 
}

Properti

Properti untuk bagian Dukungan Tanya Jawab Umum Pelanggan:

  • enablemarketplaceqna - bidang boolean, diatur ke true untuk marketplace atau tanya jawab kustom; false untuk menonaktifkan Tanya Jawab Umum
  • url - string, URL untuk Tanya Jawab Kustom

Contoh yang menunjukkan penggunaan dukungan T & A

Contoh: Ekstensi menggunakan T & A kustom

{
     "CustomerQnASupport": {
        "enablemarketplaceqna":"true",
        "url": "http://uservoice.visualstudio.com"
    } 
}

Contoh: Ekstensi dengan repositori GitHub tetapi menggunakan T & A Marketplace, bukan masalah GitHub

{
     "CustomerQnASupport": {
        "enablemarketplaceqna":"true"
    } 
}

Contoh: Ekstensi menonaktifkan bagian T & A

{
     "CustomerQnASupport": {
        "enablemarketplaceqna":"false"
    } 
}

Cakupan

Di ekstensi, Anda dapat menentukan satu atau beberapa cakupan. Cakupan ini menentukan sumber daya mana yang dapat diakses ekstensi Anda dan operasi yang diizinkan untuk dilakukan pada sumber daya tersebut. Cakupan yang Anda tentukan dalam manifes ekstensi adalah cakupan yang diatur pada token akses yang dikeluarkan untuk ekstensi Anda. Untuk informasi selengkapnya, lihat Autentikasi dan keamanan.

Jika tidak ada cakupan yang ditentukan, ekstensi hanya disediakan akses ke profil pengguna dan data ekstensi.

Cakupan yang didukung

Kategori Cakupan Nama Deskripsi
Kumpulan Agen vso.agentpools Kumpulan Agen (baca) Memberikan kemampuan untuk melihat tugas, kumpulan, antrean, agen, dan pekerjaan yang saat ini berjalan atau baru-baru ini selesai untuk agen.
vso.agentpools_manage Kumpulan Agen (baca, kelola) Memberikan kemampuan untuk mengelola kumpulan, antrean, dan agen.
vso.environment_manage Lingkungan (baca, kelola) Memberikan kemampuan untuk mengelola kumpulan, antrean, agen, dan lingkungan.
Analitik vso.analytics Analitik (baca) Memberikan kemampuan untuk mengkueri data analitik.
Audit vso.auditlog Log Audit (baca) Memberikan kemampuan untuk membaca log audit kepada pengguna.
vso.auditstreams_manage Audit Aliran (baca) Memberikan kemampuan untuk mengelola aliran audit kepada pengguna.
Build vso.build Build (baca) Memberikan kemampuan untuk mengakses artefak build, termasuk hasil build, definisi, dan permintaan, dan kemampuan untuk menerima pemberitahuan tentang peristiwa build melalui kait layanan.
vso.build_execute Bangun (baca dan jalankan) Memberikan kemampuan untuk mengakses artefak build, termasuk hasil build, definisi, dan permintaan, dan kemampuan untuk mengantre build, memperbarui properti build, dan kemampuan untuk menerima pemberitahuan tentang peristiwa build melalui kait layanan.
Kode vso.code Kode (baca) Memberikan kemampuan untuk membaca kode sumber dan metadata tentang penerapan, set perubahan, cabang, dan artefak kontrol versi lainnya. Juga memberikan kemampuan untuk mencari kode dan mendapatkan pemberitahuan tentang peristiwa kontrol versi melalui kait layanan.
vso.code_write Kode (baca dan tulis) Memberikan kemampuan untuk membaca, memperbarui, dan menghapus kode sumber, mengakses metadata tentang penerapan, set perubahan, cabang, dan artefak kontrol versi lainnya. Juga memberikan kemampuan untuk membuat dan mengelola permintaan pull dan ulasan kode dan untuk menerima pemberitahuan tentang peristiwa kontrol versi melalui kait layanan.
vso.code_manage Kode (baca, tulis, dan kelola) Memberikan kemampuan untuk membaca, memperbarui, dan menghapus kode sumber, mengakses metadata tentang penerapan, set perubahan, cabang, dan artefak kontrol versi lainnya. Juga memberikan kemampuan untuk membuat dan mengelola repositori kode, membuat dan mengelola permintaan pull dan ulasan kode, dan untuk menerima pemberitahuan tentang peristiwa kontrol versi melalui kait layanan.
vso.code_full Kode (penuh) Memberikan akses penuh ke kode sumber, metadata tentang penerapan, set perubahan, cabang, dan artefak kontrol versi lainnya. Juga memberikan kemampuan untuk membuat dan mengelola repositori kode, membuat dan mengelola permintaan pull dan ulasan kode, dan untuk menerima pemberitahuan tentang peristiwa kontrol versi melalui kait layanan. Juga termasuk dukungan terbatas untuk API OM Klien.
vso.code_status Kode (status) Memberikan kemampuan untuk membaca dan menulis status penerapan dan permintaan pull.
Server Koneksi vso.connected_server Server Koneksi Memberikan kemampuan untuk mengakses titik akhir yang diperlukan dari server yang terhubung secara lokal.
Hak vso.entitlements Pemberian Izin (Baca) Menyediakan akses baca saja ke titik akhir pemberian hak lisensi untuk mendapatkan hak akun.
vso.memberentitlementmanagement Pengelolaan Pemberian Izin Anggota (baca) Memberikan kemampuan untuk membaca pengguna, lisensi mereka serta proyek dan ekstensi yang dapat mereka akses.
vso.memberentitlementmanagement_write Pengelolaan Pemberian Izin Anggota (tulis) Memberikan kemampuan untuk mengelola pengguna, lisensi mereka serta proyek dan ekstensi yang dapat mereka akses.
Ekstensi vso.extension Ekstensi (baca) Memberikan kemampuan untuk membaca ekstensi yang diinstal.
vso.extension_manage Ekstensi (baca dan kelola) Memberikan kemampuan untuk menginstal, menghapus instalan, dan melakukan tindakan administratif lainnya pada ekstensi yang diinstal.
vso.extension.data Data ekstensi (baca) Memberikan kemampuan untuk membaca data (pengaturan dan dokumen) yang disimpan oleh ekstensi yang diinstal.
vso.extension.data_write Data ekstensi (baca dan tulis) Memberikan kemampuan untuk membaca dan menulis data (pengaturan dan dokumen) yang disimpan oleh ekstensi yang diinstal.
Grafik & identitas vso.graph Grafik (baca) Memberikan kemampuan untuk membaca informasi keanggotaan pengguna, grup, cakupan, dan grup.
vso.graph_manage Grafik (kelola) Memberikan kemampuan untuk membaca informasi keanggotaan pengguna, grup, cakupan, dan grup, dan untuk menambahkan pengguna, grup, dan mengelola keanggotaan grup.
vso.identity Identitas (baca) Memberikan kemampuan untuk membaca identitas dan grup.
vso.identity_manage Identitas (kelola) Memberikan kemampuan untuk membaca, menulis, dan mengelola identitas dan grup.
Grup Mesin vso.machinegroup_manage Grup penyebaran (baca, kelola) Menyediakan kemampuan untuk mengelola grup penyebaran dan kumpulan agen.
Marketplace vso.gallery Marketplace Memberikan akses baca ke item publik dan privat dan penerbit.
vso.gallery_acquire Marketplace (akuisisi) Memberikan akses baca dan kemampuan untuk memperoleh item.
vso.gallery_publish Marketplace (terbitkan) Memberikan akses baca dan kemampuan untuk mengunggah, memperbarui, dan berbagi item.
vso.gallery_manage Marketplace (kelola) Memberikan akses baca dan kemampuan untuk menerbitkan dan mengelola item dan penerbit.
Pemberitahuan vso.notification Pemberitahuan (baca) Menyediakan akses baca ke langganan dan metadata peristiwa, termasuk nilai bidang yang dapat difilter.
vso.notification_write Pemberitahuan (tulis) Menyediakan akses baca dan tulis ke langganan dan akses baca ke metadata peristiwa, termasuk nilai bidang yang dapat difilter.
vso.notification_manage Pemberitahuan (kelola) Menyediakan akses baca, tulis, dan manajemen ke langganan dan akses baca ke metadata peristiwa, termasuk nilai bidang yang dapat difilter.
vso.notification_diagnostics Pemberitahuan (diagnostik) Menyediakan akses ke log diagnostik terkait pemberitahuan dan menyediakan kemampuan untuk mengaktifkan diagnostik untuk langganan individual.
Kemasan vso.packaging Pengemasan (baca) Memberikan kemampuan untuk membaca umpan dan paket.
vso.packaging_write Kemasan (baca dan tulis) Memberikan kemampuan untuk membuat dan membaca umpan dan paket.
vso.packaging_manage Pengemasan (baca, tulis, dan kelola) Memberikan kemampuan untuk membuat, membaca, memperbarui, dan menghapus umpan dan paket.
Sumber Daya Alur vso.pipelineresources_use Sumber Daya Alur (gunakan) Memberikan kemampuan untuk menyetujui permintaan alur untuk menggunakan sumber daya yang dilindungi: kumpulan agen, lingkungan, antrean, repositori, file aman, koneksi layanan, dan grup variabel.
vso.pipelineresources_manage Sumber Daya Alur (gunakan dan kelola) Memberikan kemampuan untuk mengelola sumber daya yang dilindungi atau permintaan alur untuk menggunakan sumber daya yang dilindungi: kumpulan agen, lingkungan, antrean, repositori, file aman, koneksi layanan, dan grup variabel.
Proyek dan Tim vso.project Proyek dan tim (baca) Memberikan kemampuan untuk membaca proyek dan tim.
vso.project_write Proyek dan tim (baca dan tulis) Memberikan kemampuan untuk membaca dan memperbarui proyek dan tim.
vso.project_manage Proyek dan tim (baca, tulis, dan kelola) Memberikan kemampuan untuk membuat, membaca, memperbarui, dan menghapus proyek dan tim.
Rilis vso.release Rilis (baca) Memberikan kemampuan untuk membaca artefak rilis, termasuk rilis, definisi rilis, dan lingkungan rilis.
vso.release_execute Rilis (baca, tulis, dan jalankan) Memberikan kemampuan untuk membaca dan memperbarui artefak rilis, termasuk rilis, definisi rilis dan lingkungan rilis, dan kemampuan untuk mengantre rilis baru.
vso.release_manage Rilis (baca, tulis, jalankan, dan kelola) Memberikan kemampuan untuk membaca, memperbarui, dan menghapus artefak rilis, termasuk rilis, definisi rilis, dan lingkungan rilis, dan kemampuan untuk mengantre dan menyetujui rilis baru.
File Aman vso.securefiles_read File Aman (baca) Memberikan kemampuan untuk membaca file aman.
vso.securefiles_write File Aman (baca, buat) Memberikan kemampuan untuk membaca dan membuat file aman.
vso.securefiles_manage File Aman (baca, buat, dan kelola) Memberikan kemampuan untuk membaca, membuat, dan mengelola file yang aman.
Keamanan vso.security_manage Keamanan (kelola) Memberikan kemampuan untuk membaca, menulis, dan mengelola izin keamanan.
Sambungan Layanan vso.serviceendpoint Titik Akhir Layanan (baca) Memberikan kemampuan untuk membaca titik akhir layanan.
vso.serviceendpoint_query Titik Akhir Layanan (baca dan kueri) Memberikan kemampuan untuk membaca dan mengkueri titik akhir layanan.
vso.serviceendpoint_manage Titik Akhir Layanan (baca, kueri, dan kelola) Memberikan kemampuan untuk membaca, mengkueri, dan mengelola titik akhir layanan.
Pengaturan vso.settings Pengaturan (baca) Memberikan kemampuan untuk membaca pengaturan.
vso.settings_write Pengaturan (baca dan tulis) Memberikan kemampuan untuk membuat dan membaca pengaturan.
Simbol vso.symbols Simbol (baca) Memberikan kemampuan untuk membaca simbol.
vso.symbols_write Simbol (baca dan tulis) Memberikan kemampuan untuk membaca dan menulis simbol.
vso.symbols_manage Simbol (baca, tulis, dan kelola) Memberikan kemampuan untuk membaca, menulis, dan mengelola simbol.
Grup Tugas vso.taskgroups_read Grup Tugas (baca) Memberikan kemampuan untuk membaca grup tugas.
vso.taskgroups_write Grup Tugas (baca, buat) Memberikan kemampuan untuk membaca dan membuat grup tugas.
vso.taskgroups_manage Grup Tugas (membaca, membuat, dan mengelola) Memberikan kemampuan untuk membaca, membuat, dan mengelola grup tugas.
Dasbor Tim vso.dashboards Dasbor tim (baca) Memberikan kemampuan untuk membaca informasi dasbor tim.
vso.dashboards_manage Dasbor tim (kelola) Memberikan kemampuan untuk mengelola informasi dasbor tim.
Manajemen Pengujian vso.test Manajemen pengujian (baca) Memberikan kemampuan untuk membaca rencana pengujian, kasus, hasil, dan artefak terkait manajemen pengujian lainnya.
vso.test_write Manajemen pengujian (baca dan tulis) Memberikan kemampuan untuk membaca, membuat, dan memperbarui rencana pengujian, kasus, hasil, dan artefak terkait manajemen pengujian lainnya.
Benang vso.threads_full Utas PR Memberikan kemampuan untuk membaca dan menulis untuk menarik utas komentar permintaan.
Token vso.tokens Token Otorisasi yang Didelegasikan Memberikan kemampuan untuk mengelola token otorisasi yang didelegasikan kepada pengguna.
vso.tokenadministration Administrasi Token Memberikan kemampuan untuk mengelola (melihat dan mencabut) token yang ada kepada administrator organisasi.
Profil Pengguna vso.profile Profil pengguna (baca) Memberikan kemampuan untuk membaca profil, akun, koleksi, proyek, tim, dan artefak organisasi tingkat atas Lainnya.
vso.profile_write Profil pengguna (tulis) Memberikan kemampuan untuk menulis ke profil Anda.
Grup Variabel vso.variablegroups_read Grup Variabel (baca) Memberikan kemampuan untuk membaca grup variabel.
vso.variablegroups_write Grup Variabel (baca, buat) Memberikan kemampuan untuk membaca dan membuat grup variabel.
vso.variablegroups_manage Grup Variabel (baca, buat, dan kelola) Memberikan kemampuan untuk membaca, membuat, dan mengelola grup variabel.
Wiki vso.wiki Wiki (baca) Memberikan kemampuan untuk membaca wiki, halaman wiki, dan lampiran wiki. Juga memberikan kemampuan untuk mencari halaman wiki.
vso.wiki_write Wiki (baca dan tulis) Memberikan kemampuan untuk membaca, membuat, dan memperbarui wiki, halaman wiki, dan lampiran wiki.
Item Kerja vso.work Item kerja (baca) Memberikan kemampuan untuk membaca item kerja, kueri, papan, jalur area dan iterasi, dan metadata terkait pelacakan item kerja lainnya. Juga memberikan kemampuan untuk menjalankan kueri, mencari item kerja, dan menerima pemberitahuan tentang peristiwa item kerja melalui kait layanan.
vso.work_write Item kerja (baca dan tulis) Memberikan kemampuan untuk membaca, membuat, dan memperbarui item dan kueri kerja, memperbarui metadata papan, area baca dan jalur perulangan item kerja lainnya yang melacak metadata terkait, menjalankan kueri, dan untuk menerima pemberitahuan tentang peristiwa item kerja melalui kait layanan.
vso.work_full Item kerja (penuh) Memberikan akses penuh ke item kerja, kueri, backlog, paket, dan metadata pelacakan item kerja. Juga menyediakan kemampuan untuk menerima pemberitahuan tentang peristiwa item kerja melalui kait layanan.
Peniruan Identitas Pengguna user_impersonation Peniruan Identitas Pengguna Memiliki akses penuh ke REST API Visual Studio Team Services. Minta dan/atau setujui cakupan ini dengan hati-hati karena sangat kuat!

Mengubah cakupan ekstensi yang diterbitkan

Anda dapat mengubah cakupan ekstensi yang diterbitkan. Jika sebelumnya Anda menginstal ekstensi (dan mengotorisasi kumpulan cakupan sebelumnya), Anda harus mengotorisasi cakupan baru sebelum dapat meningkatkan ke versi terbaru.

Bagian Tindakan yang Diperlukan dari hub Pengaturan ekstensi memperlihatkan pengguna yang, jika ada, ekstensi yang diinstal memerlukan otorisasi:

perubahan cakupan

Administrator kemudian dapat meninjau dan mengotorisasi serangkaian cakupan baru:

dialog perubahan cakupan

Target penginstalan

Seperti namanya, target penginstalan menentukan produk dan layanan tempat Anda dapat menginstal ekstensi Anda. Microsoft.VisualStudio.Services adalah target penginstalan yang paling umum dan menunjukkan bahwa ekstensi dapat diinstal ke Azure DevOps.

Target penginstalan untuk ekstensi atau integrasi ditentukan melalui targets bidang dalam manifes.

Pengidentifikasi yang didukung untuk ekstensi:

  • Microsoft.VisualStudio.Services.Cloud: menginstal ke Layanan Azure DevOps
  • Microsoft.TeamFoundation.Server: menginstal ke Azure DevOps Server
  • Microsoft.VisualStudio.Services: menginstal ke keduanya. Pintasan untuk Microsoft.VisualStudio.Services.Cloud dan Microsoft.TeamFoundation.Server versi [14.2,)

Pengidentifikasi yang didukung untuk integrasi:

  • Microsoft.VisualStudio.Services.Cloud.Integration: terintegrasi dengan Azure DevOps Services
  • Microsoft.TeamFoundation.Server.Integration: terintegrasi dengan Azure DevOps Server
  • Microsoft.VisualStudio.Services.Integration: terintegrasi dengan keduanya. Pintasan untuk Microsoft.VisualStudio.Services.Cloud.Integration dan Microsoft.TeamFoundation.Server.Integration

Untuk informasi selengkapnya, lihat Poin ekstensibilitas.

Contoh target penginstalan

Contoh: Ekstensi yang berfungsi dengan Azure DevOps

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ]
}

Contoh: Ekstensi yang hanya berfungsi dengan Azure DevOps Services

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Cloud"
        }
    ]
}

Target penginstalan juga dapat digunakan dalam manifes integrasi. Misalnya, produk, aplikasi, atau alat yang berfungsi dengan, tetapi jangan instal ke Azure DevOps.

Contoh: Integrasi yang berfungsi dengan Azure DevOps

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Integration"
        }
    ]
}

Contoh: Integrasi yang hanya berfungsi dengan Azure DevOps Server

{
    "targets": [
        {
            "id": "Microsoft.TeamFoundation.Server.Integration"
        }
    ]
}

Versi target penginstalan

Beberapa pengidentifikasi target penginstalan, seperti Microsoft.TeamFoundation.Server dan Microsoft.TeamFoundation.Server.Integration, mendukung rentang versi opsional. Rentang versi opsional ini selanjutnya mengklarifikasi rilis yang didukung, ekstensi atau integrasi didukung.

Rentang versi atau versi ditentukan melalui version bidang pada objek target penginstalan. Nilai ini dapat berupa:

  • Versi tertentu, misalnya: 15.0 (hanya RTM 2017)
  • Rentang versi yang didukung, misalnya: [14.0) (RTM 2015 dan yang lebih baru), [14.3,15.1] (2015 Pembaruan 3 hingga 2017 Pembaruan 1). Nilai rentang disempurnakan menggunakan:
    • [: versi minimum inklusif
    • ]: versi maksimum inklusif
    • (: versi minimum eksklusif
    • ): versi maksimum eksklusif

Nomor versi untuk Azure DevOps Server:

Lepaskan Rilis Versi
2010 Semua rilis 10.0
2012 Semua rilis 11.0
2013 RTM dan pembaruan 12.0, 12.1, 12.2, 12.3, 12.4
2015 RTM dan pembaruan 14.0, 14.1, 14.2, 14.3
2017 RTM dan pembaruan 15.0, 15.1
2018 RTM dan pembaruan 16,0
2019 RTM dan pembaruan 17,0
2020 RTM dan pembaruan 18,0

Contoh yang memperlihatkan versi

Contoh: Ekstensi yang berfungsi dengan Azure DevOps

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Cloud"
        },
        {
            "id": "Microsoft.TeamFoundation.Server",
            "version": "[15.0,)"
        }
    ]
}

Pintasan

Microsoft.VisualStudio.Services adalah pintasan untuk Azure DevOps.

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ]
}

setara dengan:

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Cloud"
        },
        {
            "id": "Microsoft.TeamFoundation.Server",
            "version": "[14.2,)"
        }
    ]
}

Menggunakan target dan tuntutan penginstalan

Target dan tuntutan penginstalan digunakan bersama-sama untuk menyajikan pengguna dengan tampilan produk/layanan yang benar yang kompatibel dengan ekstensi atau integrasi Anda. Misalnya, menentukan target Microsoft.VisualStudio.Services penginstalan dengan permintaan api-version/3.0 berarti ekstensi berfungsi dengan Azure DevOps.

Tip

Untuk informasi selengkapnya tentang REST API, lihat Referensi REST API.

Contoh: Ekstensi yang menggunakan API versi 3.0

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ],
    "demands": [
        "api-version/3.0"
    ]
}

Menyelesaikan ke target penginstalan berikut:

  1. Microsoft.VisualStudio.Services.Cloud
  2. Microsoft.TeamFoundation.ServerVersi: [15.0,)

Contoh: Integrasi yang menggunakan API versi 2.0

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Integration"
        }
    ],
    "demands": [
        "api-version/2.0"
    ]
}

Menyelesaikan ke target penginstalan berikut:

  1. Microsoft.VisualStudio.Services.Cloud.Integration
  2. Microsoft.TeamFoundation.Server.IntegrationVersi: [14.0,)

Permintaan

Tuntutan memungkinkan Anda menentukan kemampuan dan fitur lain yang diperlukan oleh ekstensi Anda. Anda dapat menggunakan tuntutan ini untuk membatasi tempat ekstensi Anda dapat diterbitkan atau diinstal.

Tuntutan digunakan oleh Visual Studio Marketplace untuk mencantumkan produk dan lingkungan yang kompatibel dengan ekstensi Anda, yang membantu pelanggan memahami apakah ekstensi Anda berfungsi dengan versi Azure DevOps mereka, misalnya.

Lihat contoh berikut tentang bagaimana permintaan ditentukan dalam manifes ekstensi.

{
    "demands": [
        "api-version/3.0",
        "contribution/ms.vss-dashboards-web.widget-catalog"
    ]
}

Dalam contoh ini, ekstensi menuntut API versi 3.0, yang berarti hanya dapat diinstal ke Azure DevOps. Ini juga mengharuskan ms.vss-dashboards-web ekstensi (dan kontribusinya widget-catalog ) diinstal (dan diaktifkan) dalam koleksi sebelum ekstensi Anda dapat diinstal.

Tuntutan yang didukung

Tipe Deskripsi Diperiksa saat dipublikasikan? Diperiksa saat penginstalan?
environment/cloud Memerlukan berjalan di lingkungan cloud Ya Ya
environment/onprem Mengharuskan berjalan di lingkungan lokal Ya Ya
api-version/{version} Memerlukan versi API tertentu (minimum) Tidak Ya
extension/{id} Mengharuskan ekstensi tertentu diinstal/diaktifkan Tidak Ya
contribution/{id} Memerlukan kontribusi tertentu tersedia Tidak Ya
contributionType/{id} Memerlukan jenis kontribusi tertentu tersedia Tidak Ya

Catatan

  • Gunakan environment/cloud dan environment/onprem hanya ketika ekstensi Anda memiliki persyaratan terkait topologi yang memerlukan berjalan di lingkungan tertentu.
  • extension, contribution, dan contributionType tuntutan dievaluasi pada waktu penginstalan, dan mengharuskan ekstensi yang ditentukan sudah diinstal dan diaktifkan dalam organisasi/koleksi.

File

Bagian files ini adalah tempat Anda mereferensikan file apa pun yang ingin Anda sertakan dalam ekstensi Anda. Anda dapat menambahkan folder dan file individual:

{
    "files": [
        {
            "path": "hello-world.html", "addressable": true
        },
        {
            "path": "scripts", "addressable": true
        },
        {
            "path": "images/logo.png", "addressable": true, "packagePath": "/"
        }
    ]
}

Properti

Properti untuk bagian File:

  • path - Jalur ke sumber daya pada disk, yang dapat relatif terhadap direktori akar Anda.
  • addressable – (opsional) Atur ke true jika Anda ingin file Anda dapat diatasi URL. Default ke false.
  • packagePath – (opsional) Jalur ke sumber daya dalam paket. Default ke jalur relatif pada disk dari direktori akar Anda.
  • contentType – (opsional) jenis MIME file. Default ke tebakan terbaik berdasarkan ekstensi file dan pengaturan OS.
  • assetType – (opsional) Tentukan nilai atribut Jenis entri aset dalam manifes VSIX. Dapat juga menjadi array string, dalam hal ini beberapa entri aset ditambahkan untuk file ini. Default ke packagePath.
  • bahasa lang – (opsional) Bahasa aset ini. File yang dilokalkan disajikan berdasarkan header Terima-Bahasa. Biarkan kosong untuk menandakan file ini berada dalam bahasa default (atau fallback). Versi yang dilokalkan dari file yang sama harus memiliki assetType yang sama.

Kontribusi

Setiap entri kontribusi memiliki properti berikut:

  • id - ID referensi (string) untuk kontribusi. ID setiap kontribusi harus unik dalam ekstensi. Lihat mereferensikan kontribusi dan jenis.
  • type - ID contributionType dari kontribusi ini.
  • description - (Opsional) String yang menjelaskan apa yang diberikan kontribusi.
  • target - Array ID kontribusi yang ditargetkan kontribusi (berkontribusi). Lihat Menargetkan kontribusi.
  • properties - (Opsional) Objek yang menyertakan properti untuk kontribusi seperti yang didefinisikan dalam jenis kontribusi.

Untuk informasi selengkapnya, lihat gambaran umum model kontribusi.

Jenis kontribusi

Setiap entri kontribusi memiliki properti berikut:

  • id - ID referensi (string) untuk jenis kontribusi. ID setiap jenis kontribusi harus unik dalam ekstensi. Lihat mereferensikan kontribusi dan jenis.
  • name - Nama yang mudah diingat dari jenis kontribusi.
  • description - (Opsional) String yang menjelaskan secara lebih rinci untuk apa jenis kontribusi tersebut.
  • properties - (Opsional) Kamus yang memetakan nama properti ke deskripsi properti. Properti ini menjelaskan properti yang diperlukan dan opsional yang dapat digunakan kontribusi jenis ini.

Deskripsi properti memiliki properti berikut:

  • description - (Opsional) String yang menjelaskan untuk apa properti digunakan.
  • wajib - (Opsional) Nilai boolean, yang jika benar menunjukkan bahwa properti diperlukan untuk semua kontribusi jenis ini.
  • type - Jenis nilai yang dapat dimiliki properti, yang bisa berupa string, uri, guid, boolean, bilangan bulat, double, dateTime, array, atau objek.

Untuk informasi selengkapnya, lihat gambaran umum model kontribusi.

Mereferensikan kontribusi dan jenis

Gunakan pengidentifikasi unik untuk mereferensikan kontribusi dan jenis kontribusi. Jenis referensi type dengan properti , dan referensikan kontribusi lain dengan targets properti .

  • Referensi kontribusi lengkap mencakup pengidentifikasi penerbit, pengidentifikasi ekstensi, dan pengidentifikasi kontribusi/jenis, dipisahkan oleh titik (.). Misalnya, ms.vss-web.hub adalah pengidentifikasi lengkap untuk kontribusi dengan pengidentifikasi "hub" dalam ekstensi "vss-web" yang diterbitkan oleh penerbit "ms" (Microsoft).
  • Referensi kontribusi relatif dapat digunakan dalam manifes ekstensi untuk referensi kontribusi ke jenis kontribusi atau kontribusi lain dalam ekstensi yang sama. Dalam hal ini, penerbit dan pengidentifikasi ekstensi TIDAK disertakan, dan pengidentifikasi adalah titik (.) diikuti oleh pengidentifikasi kontribusi. Misalnya, ".hub" mungkin digunakan dalam ekstensi "vss-web" yang disebutkan sebelumnya sebagai pintasan untuk "ms.vss-web.hub."

Menargetkan kontribusi

Beberapa kontribusi bertindak sebagai kontainer yang ditargetkan oleh kontribusi lain.

  • Kontribusi hub dapat menargetkan Grup Hub. Saat halaman dirender, UI web menampilkan semua kontribusi Hub yang menargetkan grup hub yang dipilih. Grup hub menargetkan kumpulan grup hub, yang menentukan sekumpulan grup hub yang muncul di area navigasi tertentu, misalnya, halaman admin tingkat proyek.
  • Berbagai jenis kontribusi dapat menargetkan menu: tindakan, tindakan hyperlink, dan penyedia tindakan. Tindakan dan tindakan hyperlink menyediakan entri item menu tunggal. Penyedia tindakan dapat menyediakan beberapa item menu dinamis. Untuk menu tertentu, item dikumpulkan di semua kontribusi (dari salah satu jenis ini) yang menargetkan kontribusi menu tertentu.

Menambahkan ikon hub

Untuk informasi tentang menambahkan ikon ke hub Anda, lihat panduan ikon hub.

Layanan lencana yang didukung

Marketplace hanya mendukung lencana dari layanan tepercaya berikut:

  • api.travis-ci.org/
  • badge.fury.io/
  • badges.frapsoft.com/
  • badges.gitter.im/
  • badges.greenkeeper.io/
  • cdn.travis-ci.org/
  • ci.appveyor.com/
  • codeclimate.com/
  • codecov.io/
  • coveralls.io/
  • david-dm.org/
  • gemnasium.com/
  • img.shields.io/
  • isitmaintained.com/
  • marketplace.visualstudio.com/
  • snyk.io/
  • travis-ci.com/
  • travis-ci.org/
  • vsmarketplacebadges.dev/
  • bithound.io/
  • deepscan.io/
  • githost.io/
  • gitlab.com/
  • opencollective.co/

Catatan

Ganti "vsmarketplacebadge.apphb.com" dengan "vsmarketplacebadges.dev".

Untuk menampilkan lencana dari layanan lain, hubungi vsmarketplace@microsoft.com.

Contoh manifes

Ekstensi berikut berkontribusi tindakan ke menu konteks build yang telah selesai dan hub ke grup Hub build:

{
    "manifestVersion": 1,
    "id": "tools",
    "version": "0.1.0",
    "name": "Fabrikam Tools",
    "publisher": "fabrikam",
    "description": "Awesome tools to help you and your team do great things everyday.",
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ],
    "demands": [
        "api-version/3.0"
    ],
    "icons": {
        "default": "images/fabrikam-logo.png"
    },
    "scopes": [
        "vso.work",
        "vso.code_write"
    ],
    "categories": [
        "Plan and track"
    ],
    "tags": [
        "working",
        "people person",
        "search"
    ],
    "branding": {
        "color": "rgb(34, 34, 34)",
        "theme": "dark"
    },
    "screenshots": [
        {
            "path": "screenshots/screen1.png"
        },
        {
            "path": "screenshots/screen2.png"
        }
    ],
    "content": {
        "details": {
            "path": "overview.md"
        },
        "license": {
            "path": "eula.md"
        }
    },
    "links": {
        "home": {
            "uri": "https://www.fabrikam-fiber-inc.com"
        },
        "getstarted": {
            "uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
        },
        "learn": {
            "uri": "https://www.fabrikam-fiber-inc.com/features"
        },
        "support": {
            "uri": "https://www.fabrikam-fiber-inc.com/support"
        },
        "repository": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools"
        },
        "issues": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools/issues"
        }
    },
    "repository": {
        "type": "git",
        "uri": "https://github.com/fabrikam-fiber-inc/myextension"
    },
    "badges": [
        {
            "href": "https://travis.ci/fabrikam-fiber-inc/myextension",
            "uri": "https://travis.ci/fabrikam-fiber-inc/myextension.svg?branch=master",
            "description": "TravisCI build for the project"
        },
        {
            "href": "https://ci.appveyor.com/projects/fabrikam-fiber-inc/myextension",
            "uri": "https://ci.appveyor.com/api/projects/status/vlg2sgs2y7tsdxpj4c?svg=true",
            "description": "AppVeyor build for the project"
        }
    ],
    "contributions": [
        {
            "id": "showCommits",
            "type": "ms.vss-web.action",
            "description": "Adds a menu action from builds grid to show associated items.",
            "targets": [
                "ms.vss-build-web.completed-build-menu"
            ],
            "properties": {
                "title": "View associated items",
                "uri": "launch.html"
            }
        }
    ]
}