通过


贡献模型

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

扩展通过在扩展清单中声明的贡献贡献类型为 Azure DevOps 添加功能。 贡献类型定义一个合同,即该类型的属性和行为必须实现。 贡献是贡献类型的具体实例(例如,集线器或生成任务)。

小窍门

如果要启动新的 Azure DevOps 扩展,请先尝试这些维护的示例集合 -- 它们适用于当前产品版本并涵盖新式方案(例如,在拉取请求页上添加选项卡)。

如果某个示例在组织中不起作用,请将其安装到个人或测试组织中,并将扩展清单的目标 ID 和 API 版本与当前文档进行比较。有关参考和 API,请参阅:

有关详细信息,请参见:

贡献类型

贡献类型定义该类型必须遵循的属性和规则。 贡献类型可以扩展其他贡献类型,从而继承其属性。

常见的内置贡献类型包括:

  • ms.vss-web.hub — Web UI 中的页面
  • ms.vss-web.action — 菜单操作
  • ms.vss-distributed-task.task — 生成/发布任务

贡献类型中的每个属性定义都指定:

  • type — 数据类型 (例如, stringbooleaninteger
  • 必需 - 是否必须提供属性
  • 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是一个快捷方式。