限制工作项状态转换

在预览版中推出多个冲刺后,我们现已宣布正式发布 状态转换限制规则,作为 Sprint 172 更新的一部分,向所有客户发布状态转换限制规则

有关详细信息, 请查看下面的功能 列表。

功能

Azure Boards

Azure Pipelines

Azure Artifacts

Azure Boards

状态转换限制规则

在几个个人预览版冲刺之后,状态转换限制规则现已适用于所有客户。 使用此新的工作项类型规则,可以限制工作项从一个状态移动到另一个状态。 例如,可以限制 Bug 从“新建”转到“已解决”。 相反,它们必须从“新建 -> 活动” -> “已解决”

本示例将 Bug 从“新建”状态限制为“活动”,然后限制为“已解决”,而不是从“新建”状态转到“已解决”状态。

还可以创建规则来限制组成员身份的状态转换。 例如,只有“审批者”组中的用户才能从“新建 -> 已批准”移动用户情景。

复制工作项以复制子级

Azure Boards 最请求的功能之一是复制同时复制子工作项的工作项。 在此冲刺中,我们向复制工作项对话框添加了“包括子工作项”的新选项。 选中此选项后,将复制工作项并复制所有子工作项(最多 100 个)。

本页显示了 Azure Boards 中用于在复制的工作项中包含子工作项的新选项。

改进了已激活和已解析字段的规则

到目前为止,“已激活日期”、“已激活日期”、“已解决日期”和“已解决日期”的规则一直是个谜。 它们仅针对系统工作项类型进行设置,特定于“Active”和“Resolved”的状态值。 在冲刺 172 中,我们更改了逻辑,以便这些规则不再针对特定状态。 相反,它们由状态所在的类别(状态类别)触发。 例如,假设你在“已解决”类别中有“需要测试”的自定义状态。 当工作项从“活动”更改为“需要测试”时, 将触发“已解决者 ”和 “已解决日期 ”规则。

这样,客户就可以创建任何自定义状态值,并且仍生成“已激活的日期”、“解决日期”和“已解析日期”字段,而无需使用自定义规则。

积压工作和板上的系统工作项类型(个人预览版)

自继承过程模型开始以来,已排除了多个工作项类型,无法添加到板和积压工作。 这些工作项类型包括:

处理 工作项类型
敏捷 问题
Scrum 障碍
CMMI 更改请求
问题
审阅
风险

从此冲刺开始,我们将允许那些希望使这些工作项类型在任何积压工作级别上可用的客户提供个人预览版。

使用此 Azure Boards 页可将以前排除的工作项类型添加到板和积压工作项类型。

如果你有兴趣预览此功能,请使用 你的组织名称向我们发送电子邮件 ,我们可以为你提供访问权限。

Azure Pipelines

独占部署锁定策略

通过此更新,可以确保一次只有一个运行部署到环境。 通过在环境中选择“独占锁”检查,只会继续运行一次。 要部署到该环境的后续运行将暂停。 使用独占锁完成的运行后,将继续执行最新的运行。 将取消任何中间运行。

在“添加检查”页中,选择“独占锁”以确保一次只部署一个运行部署到环境。

管道资源触发器的阶段筛选器

在此冲刺中,我们添加了对“阶段”的支持,作为 YAML 中管道资源的筛选器。 使用此筛选器,无需等待整个 CI 管道完成以触发 CD 管道。 现在可以选择在 CI 管道中完成特定阶段后触发 CD 管道。

resources:
  pipelines:
  - pipeline: MyCIAlias  
    project: Fabrikam  
    source: Farbrikam-CI  
    trigger:    
      stages:            ### This stage filter is used when evaluating conditions for triggering your CD pipeline
      - PreProduction    ### stages are AND'ed. On successful completion of all the stages provided, your CD pipeline will be triggered. 
      - Production

在 CI 管道中成功完成触发器筛选器中提供的阶段时,会自动为 CD 管道触发新的运行。

YAML 管道的基于 Webhook 的泛型触发器

目前,我们拥有各种资源(例如管道、容器、生成和包),可以通过这些资源来使用项目并启用自动触发器。 但是,到目前为止,无法基于其他外部事件或服务自动执行部署过程。 在此版本中,我们将介绍 YAML 管道中的 Webhook 触发器支持,以便将管道自动化与任何外部服务集成。 可以通过其 Webhook(GitHub、GitHub Enterprise、Nexus、Artifactory 等)订阅任何外部事件,并触发管道。

下面是配置 Webhook 触发器的步骤:

  1. 在外部服务上设置 Webhook。 创建 Webhook 时,需要提供以下信息:

    • 请求 URL - “https://dev.azure.com/<ADO 组织>/_apis/public/distributedtask/webhooks/<WebHook 名称>?api-version=6.0-preview”
    • 机密 - 这是可选的。 如果需要保护 JSON 有效负载,请提供 机密
  2. 创建新的“传入 Webhook”服务连接。 这是一种新引入的服务连接类型,可让你定义三个重要信息片段:

    • Webhook 名称:Webhook 的名称应与在外部服务中创建的 Webhook 匹配。
    • HTTP 标头 - 请求中包含请求验证的有效负载哈希值的请求中的 HTTP 标头的名称。 例如,对于 GitHub,请求标头将为“X-Hub-Signature
    • 机密 - 机密用于分析用于验证传入请求的有效负载哈希(这是可选的)。 如果在创建 Webhook 时使用了机密,则需要提供相同的密钥

    在“编辑服务连接”页中,配置 Webhook 触发器。

  3. YAML 管道中引入了名为 webhooks 的新资源类型。 若要订阅 Webhook 事件,需要在管道中定义 Webhook 资源,并将其指向传入 Webhook 服务连接。 还可以根据 JSON 有效负载数据在 Webhook 资源上定义其他筛选器,以进一步自定义每个管道的触发器,并且可以以作业中的变量形式使用有效负载数据。

resources:
  webhooks:
    - webhook: MyWebhookTrigger          ### Webhook alias
      connection: MyWebhookConnection    ### Incoming webhook service connection
      filters:
        - path: repositoryName      ### JSON path in the payload
          value: maven-releases     ### Expected value in the path provided
        - path: action
          value: CREATED
steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    ### JSON payload data is available in the form of ${{ parameters.<WebhookAlias>.<JSONPath>}}
    script: |
      Write-Host ${{ parameters.MyWebhookTrigger.repositoryName}}
      Write-Host ${{ parameters.MyWebhookTrigger.component.group}}
  1. 每当传入 Webhook 服务连接收到 Webhook 事件时,将为订阅 Webhook 事件的所有管道触发新的运行。

YAML 资源触发器问题支持和可跟踪性

当管道触发器无法按预期执行时,可能会让人困惑。 为了帮助更好地了解这一点,我们在管道定义页中添加了一个名为“触发器问题”的新菜单项,其中显示了有关触发器不执行的原因的信息。

资源触发器由于两个原因而无法执行。

  1. 如果所提供的服务连接的源无效,或者触发器中存在任何语法错误,则根本不会配置触发器。 这些作为错误浮出水面。

  2. 如果触发器条件不匹配,触发器将不会执行。 每当发生这种情况时,都会显示警告,以便你可以了解条件不匹配的原因。

    此名为“触发器问题”的管道定义页显示有关触发器未运行的原因的信息。

我们在管道页中添加了警告横幅,提醒用户区域中正在进行的事件,这可能会影响管道。

Azure Artifacts

能够从 UI 创建组织范围的源

我们正在恢复客户通过本地服务和托管服务的 Web UI 创建和管理组织范围的源的能力。

现在,可以通过 UI 创建组织范围的源,方法是转到“项目 -> 创建源”并选择“作用域”中的源类型。

通过依次选择“项目”、“创建源”和“作用域”中的源类型来创建组织范围的源。

虽然我们建议使用项目范围的源与 Azure DevOps 产品/服务的其余部分一致,但你可以再次通过 UI 和各种 REST API 创建、管理和使用组织范围的源。 有关详细信息,请参阅我们的源文档。

后续步骤

注意

这些功能将在未来两到三周内推出。

前往 Azure DevOps 并了解一下。

如何提供反馈

我们很想听听你对这些功能的看法。 使用帮助菜单报告问题或提供建议。

提出建议

你还可以在 Stack Overflow 上获得社区的建议和问题的答案。

此致

亚伦·霍尔伯格