次の方法で共有


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

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

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

ヒント

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

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

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

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

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

一般的な投稿の種類は次のとおりです。

  • hub
  • action
  • build-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のショートカットとして使用できます。