Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
拡張機能は、拡張機能マニフェストで宣言された コントリビューション と コントリビューションの種類 を通じて、Azure DevOps に機能を追加 します。 コントリビューション型は、コントラクト (その型のコントリビューションが実装する必要があるプロパティと動作) を定義します。 コントリビューションは、コントリビューションの種類 (ハブやビルド タスクなど) の具体的なインスタンスです。
ヒント
新しい Azure DevOps 拡張機能を開始する場合は、まず、保守されているこれらのサンプル コレクションを試してください。現在の製品ビルドで動作し、最新のシナリオ (プル要求ページにタブを追加するなど) について説明します。
- Azure DevOps 拡張機能サンプル (GitHub) - 一般的な拡張機能パターンを示すコンパクトなスターター サンプルです。 https://github.com/microsoft/azure-devops-extension-sample
- Azure DevOps 拡張機能のサンプル (レガシ コレクションとコントリビューション ガイド) - UI ターゲットを検査したり、ソースを表示したりするためにインストールします。 https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guide と https://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Microsoft Learn のサンプル (Azure DevOps サンプルを参照) - Microsoft ドキュメント全体でキュレーションされた、最新のサンプルです: /samples/browse/?terms=azure%20devops%20extension
サンプルが組織で機能しない場合は、個人用またはテスト組織にインストールし、拡張機能マニフェストのターゲット ID と API バージョンを現在のドキュメントと比較します。リファレンスと API については、以下を参照してください。
詳細については、以下を参照してください。
コントリビューションの種類
コントリビューション型は、その型のコントリビューションが従う必要があるプロパティとルールを定義します。 コントリビューション型は、プロパティを継承して、他のコントリビューション型を拡張できます。
一般的な組み込みコントリビューションの種類は次のとおりです。
-
ms.vss-web.hub— Web UI のページ -
ms.vss-web.action— メニュー アクション -
ms.vss-distributed-task.task— ビルド/リリース タスク
コントリビューション型の各プロパティ定義では、次を指定します。
-
type — データ型 (たとえば、
string、boolean、integer) - required — プロパティを指定する必要があるかどうか
- default — 省略可能な既定値
コントリビューションの種類の例
マニフェストのコントリビューション型宣言は次のようになります。
{
"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"
}
}
}
]
}
貢献
コントリビューションは、コントリビューション型のインスタンスです。 たとえば、作業ハブ グループの下の Queries ハブは ms.vss-web.hub型のコントリビューションであり、 Publish Test Results ビルド タスクは ms.vss-distributed-task.task型のコントリビューションです。
すべてのコントリビューションでは、型を指定し、その型で必要なすべてのプロパティの値を指定する必要があります。
コントリビューションの例
拡張機能マニフェストの次のハブコントリビューション宣言では、ビルド ハブ グループに "Explorer" という名前のハブが追加されます。
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
ターゲット寄与
コントリビューションは、1 つ以上の他のコントリビューションを ターゲット にして、親子関係を作成できます。 システムは実行時にこれらのリレーションシップを検出して、レンダリングする対象を決定します。 たとえば、 hub コントリビューションは、どのハブがどのグループに属するかをシステムが認識できるように、 hub-group コントリビューションを対象とします。
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
ハブ グループがレンダリングされると、システムは、それを対象とするすべてのハブコントリビューションを照会して、表示するハブを決定します。
コントリビューション識別子
すべてのコントリビューションおよびその種類には、拡張子内で一意の ID が必要です。
完全修飾識別子には、 ドット (.) で区切られた 3 つの部分があります。
| 要素 | Example |
|---|---|
| パブリッシャー ID | ms |
| 拡張機能 ID | vss-web |
| 貢献/タイプ ID | hub |
完全な識別子: ms.vss-web.hub
同じ拡張マニフェスト内で、 相対参照 (ドットの後にコントリビューション ID が続く) を使用できます。 たとえば、.hubは、ms.vss-web.hub拡張機能内で使用する場合のvss-webのショートカットです。