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
}
}
]
}
目标贡献
贡献可以 指向 一个或多个其他贡献,这将在贡献与其每个目标之间建立关系。 系统可以在运行时发现目标的贡献。 例如, 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 - 贡献/类型标识符:
hub
可以在扩展清单中使用 相对 贡献引用来引用同一扩展中的另一个贡献或贡献类型。 在这种情况下,不包括发布者和扩展 ID,ID 是一个点 .,后面跟着贡献 ID。 例如,.hub 可能会在前面提到的 vss-web 扩展中用作 ms.vss-web.hub 的快捷方式。