收益模型

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工作中心组下的中心是类型的hubPublish 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"
    ]
}

当中心组呈现时,系统可以查询面向中心组的所有中心贡献,以了解要呈现哪些中心。

确定贡献和类型

每个贡献和贡献类型都必须在其声明的扩展中具有唯一 ID。

完整贡献标识符包括以下项,用点.分隔:

  • 发布者 ID
  • 扩展 ID
  • 贡献/类型 ID

例如: ms.vss-web.hub 以下贡献的完整标识符:

  • 发布者 ID: ms
  • 扩展 ID: vss-web
  • 贡献/类型 ID: hub

可以在 扩展清单中使用相对 贡献引用来引用同一扩展中的另一个贡献或贡献类型。 在这种情况下,不包括发布者和扩展 ID,ID 是后跟贡献 ID 的点 . 。 例如,.hub可以在vss-web以前作为快捷方式ms.vss-web.hub提及的扩展中使用。