Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
扩展通过在扩展清单中声明的贡献和贡献类型为 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,请参阅:
有关详细信息,请参见:
贡献类型
贡献类型定义该类型必须遵循的属性和规则。 贡献类型可以扩展其他贡献类型,从而继承其属性。
常见的内置贡献类型包括:
-
ms.vss-web.hub— Web UI 中的页面 -
ms.vss-web.action— 菜单操作 -
ms.vss-distributed-task.task— 生成/发布任务
贡献类型中的每个属性定义都指定:
-
type — 数据类型 (例如,
string,booleaninteger) - 必需 - 是否必须提供属性
- 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
}
}
]
}
目标贡献
贡献可以指向一个或多个其他贡献,从而创建父子关系。 系统在运行时发现这些关系以确定要呈现的内容。 例如,一个 hub 贡献会指向一个 hub-group 贡献,以便系统知道哪些枢纽属于哪个组。
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
当集线器组呈现时,系统会查询所有针对它的集线器贡献项,以确定要显示哪些集线器。
贡献标识符
每个贡献和贡献类型都必须在其扩展内具有唯一 ID。
完全限定标识符有三个部分,用点分隔(.):
| 部件 | Example |
|---|---|
| 发布者 ID | ms |
| 扩展 ID | vss-web |
| 贡献(类型)ID | hub |
完整标识符: ms.vss-web.hub
在同一扩展清单中,可以使用相对引用,即一个点符号,后跟贡献 ID。 例如,在vss-web扩展中使用ms.vss-web.hub时,.hub是一个快捷方式。