貢獻模型
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
的快捷方式。