貢獻模型

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

延伸模組會藉由提供貢獻,以及定義其他擴充功能插入的方式,將新功能新增至系統中。 參與類型會定義可以新增至系統的專案。 參與是參與類型的特定實例。 例如, hub 是由核心 Microsoft 提供的延伸模組所定義的參與類型。 建 Explorer 置中樞群組底下的中樞是 類型 hub的特定貢獻。

如需詳細資訊,請參閱下列參考資料:

貢獻類型

參與 類型 會定義合約,該類型系統的所有貢獻都必須遵守。 參與類型也可以從另一個貢獻類型延伸。 下列參與類型的範例會定義該類型的實體所設定的屬性:

  • hub
  • action
  • build-task

每個屬性定義都會指定下列層面:

  • 屬性類型,例如字串、布爾值等等。
  • 屬性是否為必要專案
  • 默認值,如果未由貢獻指定(選擇性)。

範例

以下是延伸模組指令清單中參與類型宣告的範例:

{
    ...
    "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": "An optional ordering value which can indicate in which position to place the hub within the hub group",
                    "type": "integer"
                }
				...
            }
        }
    ]
}

投稿文章

參與是參與類型的實例。 例如, Queries 工作中樞群組底下的中樞是 類型 hub 的貢獻,而 Publish Test Results 建置工作是 類型 build-task的貢獻。

所有貢獻都必須指定類型,併為該貢獻類型所需的任何屬性指定值。

範例

以下是延伸模組指令清單中中樞貢獻宣告的範例:

{
    "contributions": [
        {
            "id": "build-explorer-hub",
            "type": "ms.vss-web.hub",
            "targets": [
                ".build-hub-group"
            ],
            "properties": {
                "name": "Explorer",
                "uri": "/_build",
                "order": 22
            }
        }
    ]
}

目標貢獻

參與可以 針對 一或多個其他參與,這會建立參與與其每個目標之間的關聯性。 系統可以在運行時間探索目標的貢獻。 例如, hub 貢獻 (Explorer) 可能會以特定 hub-group 貢獻 (Build) 為目標。

{
    "id": "build-explorer-hub",
    "type": "ms.vss-web.hub",
    "targets": [
        ".build-hub-group"
    ]
}

當中樞群組轉譯時,系統可以查詢以中樞群組為目標的所有中樞貢獻,以瞭解要轉譯的中樞。

識別貢獻和類型

每個參與和貢獻類型在宣告的延伸模組內都必須有唯一標識符。

完整貢獻識別碼包含下列專案,您會以點.分隔:

  • 發行者標識碼
  • 擴充識別碼
  • 參與/類型標識碼

例如: ms.vss-web.hub 是下列貢獻的完整識別碼:

  • 發行者識別碼: ms
  • 延伸模組識別碼: vss-web
  • 參與/類型識別碼: hub

您可以在延伸模組指令清單內使用 相對 貢獻參考,以參考該相同延伸模組內另一個貢獻或貢獻類型。 在此情況下,不會包含發行者和延伸模組標識碼,而且標識碼是一個點 . ,後面接著貢獻標識符。 例如, .hub 可以在先前所述的延伸模組內 vss-web 使用,做為 的 ms.vss-web.hub快捷方式。