【问题标题】:How to create work item on failure in azure Release pipeline not Build pipeline如何在 azure Release 管道而不是 Build 管道中创建失败的工作项
【发布时间】:2022-03-22 05:45:49
【问题描述】:

我在“选项”选项卡上没有看到Create work item on failure 选项。我将此作为参考https://developercommunity.visualstudio.com/content/problem/343557/create-work-item-on-build-failure-lost-work-item-t.html

实际上,当我的管道在 azure devops 中出现故障时,我必须创建一个错误工作项。我看到几个帖子,其中很少有人说使用 API,或者很少有人说 Azure 本身有一个选项,但我看不到,请查看附件图片。

任何帮助将不胜感激。

【问题讨论】:

  • 嗨@Gaurav Joshi。在 Release Pipeline 中,您需要添加一个 Powershell 任务来运行 Agent Job 中的 Rest API 并设置条件。当代理作业失败时,可以创建工作项。你可以参考答案。如果您只需要创建一个 Bug 工作项。你也可以使用扩展。谢谢。
  • 嗨@Gaurav Joshi。这张票有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒this
  • 你好@KevinLu-MSFT 是的,我设法创建了工作项。虽然我有几个问题 1)我是否需要硬编码我的组织和项目名称..?有没有办法直接得到..? 2)我们如何通过powershell脚本将新创建的任务分配给用户。在创建时,我必须将它分配给默认情况下它创建未签名的人。 3)有什么方法可以从发布管道中获取真实信息,例如失败描述的原因、任务名称或阶段名称、发生时间 4)我们可以设置任务优先级、标签吗?根据您的建议,我正在尝试使用 $user="user" 但它没有用。
  • 嗨@Gaurav Joshi。请检查更新。我更新了 Powershell 脚本并在其中添加了一些功能。希望对您有所帮助。

标签: azure-devops


【解决方案1】:

在Azure Devops中,Create work item on failure这个选项确实存在,但暂时只存在于build pipeline中。

从您的屏幕截图中,您正在使用发布管道。所以你找不到它。

在 Release Pipeline 中,您需要使用 API 来创建工作项。

这是一个例子:

您可以使用 Powershell Task 运行Rest API 来创建作品。

设置条件

或者你可以直接使用这个Extension- Create Bug on Release failure

Powershell 脚本更新:

$witType="task"

$token = "PAT Token"

$url="$(SYSTEM.TEAMFOUNDATIONCOLLECTIONURI)/$(SYSTEM.TEAMPROJECT)/_apis/wit/workitems/`$$($witType)?api-version=6.0"

$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))

  $body="[
          {
            `"op`": `"add`",
            `"path`": `"/fields/System.Title`",
            `"value`": `"titlename`"
          },
          {
            `"op`": `"add`",
            `"path`": `"/fields/System.AssignedTo`",
            `"value`": `"e-mail address`"
          },

          {
            `"op`": `"add`",
            `"path`": `"/fields/Microsoft.VSTS.Common.Priority`",
            `"value`": `"4`"
          },
          {
            `"op`": `"add`",
            `"path`": `"/fields/System.Tags`",
            `"value`": `"Tag1; Tag2`"
          },
          {
            `"op`": `"add`",
            `"path`": `"/fields/System.History`",
            `"value`": `"<div>$(SYSTEM.STAGEDISPLAYNAME)</div>`"
          }

       ]"


$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -Body $body -ContentType application/json-patch+json

说明:

此API可以添加Prioritytagassign to,并将舞台名称设置为讨论。

由于这个任务是在失败的时候创建的,所以可以直接输出stage name变量给讨论。

结果:

注意:您可以参考this doc 来创建 PAT(个人访问令牌)。

【讨论】:

  • 使用构建管道选项选项卡,是否可以将此新工作项链接到相关的父工作项?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
  • 2020-09-17
  • 2019-10-24
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多