Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
拡張機能は、コントリビューションの種類とコントリビューション インスタンスを宣言することで、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 については、以下を参照してください。
詳細については、以下を参照してください。
コントリビューションの種類
コントリビューション型は、その型のコントリビューションが従う必要があるプロパティとルールを定義します。 コントリビューション型は、プロパティを継承して、別のコントリビューション型を拡張できます。
一般的な投稿の種類は次のとおりです。
hubactionbuild-task
各プロパティ定義には、次のものが含まれます。
- プロパティ型 (文字列やブール値など)
- プロパティが必要かどうか
- 省略可能な既定値
Example
マニフェストのコントリビューション型宣言は次のようになります。
{
"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 ハブは型 hub のコントリビューションであり、 Publish Test Results ビルド タスクは build-task型のコントリビューションです。
すべてのコントリビューションでは、型を指定し、そのコントリビューション型で必要なプロパティの値を指定する必要があります。
Example
拡張機能マニフェストでのハブコントリビューション宣言の例を次に示します。
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
ターゲット寄与
コントリビューションは、1 つ以上の他のコントリビューションを ターゲット にすることができます。これによって、コントリビューションとそのターゲットの間にリレーションシップが作成されます。 システムは、実行時にターゲットのコントリビューションを検出できます。 たとえば、 hub 投稿 (Explorer) は、特定の hub-group 投稿 (Build) を対象とすることがあります。
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
ハブ グループがレンダリングされると、システムは、ハブ グループを対象とするすべてのハブコントリビューションを照会して、レンダリングするハブを確認できます。
投稿と種類を特定する
すべてのコントリビューションとそのタイプは、宣言されている拡張機能内で一意の ID が必要です。
完全なコントリビューション識別子には、ドット .で区切った次の項目が含まれます。
- パブリッシャー ID
- 拡張機能 ID
- 貢献/タイプ ID
例: ms.vss-web.hub は、次のコントリビューションの完全な識別子です。
- パブリッシャー ID:
ms - 拡張機能 ID:
vss-web - コントリビューション/タイプ ID:
hub
拡張機能マニフェスト内の 相対 コントリビューション参照を使用して、同じ拡張機能内の別のコントリビューションまたはコントリビューションの種類へのコントリビューションの参照を行うことができます。 この場合、発行元 ID と拡張 ID は含まれません。ID はドット . の後にコントリビューション ID が続きます。 たとえば、 .hub は、前述の vss-web 拡張機能内で、 ms.vss-web.hubのショートカットとして使用できます。