如何在azure Release管道而不是Build管道中创建关于失败的工作项

时间:2020-10-27 02:32:25

标签: azure-devops

我没有在选项标签下看到“失败时创建条板箱工作项目”选项,我是指此https://developercommunity.visualstudio.com/content/problem/343557/create-work-item-on-build-failure-lost-work-item-t.html

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

任何帮助都会感激。

enter image description here

1 个答案:

答案 0 :(得分:1)

在Azure Devops中,选项crate work item on failure确实存在,但暂时仅存在于构建管道中。

enter image description here

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

在发布管道中,您需要使用API​​创建工作项。

这里是一个例子:

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

设置条件

enter image description here

或者您可以直接使用此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并将阶段名称设置为讨论。

由于此任务在失败时创建,因此可以直接将阶段名称变量输出到讨论中。

结果:

enter image description here

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