次の方法で共有


コントリビューション モデル

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022

拡張機能は、拡張機能マニフェストで宣言された コントリビューションコントリビューションの種類 を通じて、Azure DevOps に機能を追加 しますコントリビューション型は、コントラクト (その型のコントリビューションが実装する必要があるプロパティと動作) を定義します。 コントリビューションは、コントリビューションの種類 (ハブやビルド タスクなど) の具体的なインスタンスです。

ヒント

新しい Azure DevOps 拡張機能を開始する場合は、まず、保守されているこれらのサンプル コレクションを試してください。現在の製品ビルドで動作し、最新のシナリオ (プル要求ページにタブを追加するなど) について説明します。

サンプルが組織で機能しない場合は、個人用またはテスト組織にインストールし、拡張機能マニフェストのターゲット ID と API バージョンを現在のドキュメントと比較します。リファレンスと API については、以下を参照してください。

詳細については、以下を参照してください。

コントリビューションの種類

コントリビューション型は、その型のコントリビューションが従う必要があるプロパティとルールを定義します。 コントリビューション型は、プロパティを継承して、他のコントリビューション型を拡張できます。

一般的な組み込みコントリビューションの種類は次のとおりです。

  • ms.vss-web.hub — Web UI のページ
  • ms.vss-web.action — メニュー アクション
  • ms.vss-distributed-task.task — ビルド/リリース タスク

コントリビューション型の各プロパティ定義では、次を指定します。

  • type — データ型 (たとえば、 stringbooleaninteger)
  • 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のショートカットです。