首页 > 解决方案 > 从自定义工作项内部参考 Wiki 页面

问题描述

我创建了一个自定义工作项。它有任何方法可以将此工作项与预先创建的 wiki 页面链接。我不想手动将它与工作项链接,只是在创建新工作项时自动链接。

标签: azure-devopswikitfs-workitem

解决方案


最方便的解决方法是为您的工作项创建自定义字段。并创建一个规则以自动将 wiki 页面 url 设置为自定义字段的值。

在此处查看教程以添加自定义字段

选中此处向工作项类型添加规则,该规则将在创建工作项时触发,并将 wiki url 设置为自定义字段值。

在此处输入图像描述

还有另一种使用 azure 管道和 rest api 的解决方法。

请检查以下步骤:

1、创建web hook要被Work item created事件触发

创建 webhook 时,您需要提供以下信息:

  • 请求网址 -https://dev.azure.com/<ADO Organization>/_apis/public/distributedtask/webhooks/<WebHook Name>?api-version=6.0-preview

  • 秘密 - 这是可选的。如果您需要保护 JSON 有效负载,请提供 Secret 值

2、新建“Incoming Webhook”服务连接

  • Webhook 名称:webhook 的名称应与在您的外部服务中创建的 webhook 匹配。

3,创建一个yaml管道

在 yaml 管道中添加服务连接资源见下图:

resources:
  webhooks:
    - webhook: MyWebhookTrigger          
      connection: MyWebhookConnection   #the name of the Incoming Webhook service connection created in above step.

 

在您的管道中添加脚本任务以调用工作项更新休息 api。请参阅以下脚本:

steps:
- powershell: |
    $workitemId= ${{ parameters.MyWebhookTrigger.resource.id}}
    $url = "$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/wit/workitems/$($workitemId)?api-version=6.1-preview.3"

    $body ='
    [
      {
        "op": "add",
        "path": "/relations/-",
        "value": {
          "rel": "ArtifactLink",
          "url": "vstfs:///Wiki/WikiPage/{projectName}/{wikiName}/{wikiPage}",
          "attributes": {
            "name": "Wiki Page"
          }
        }
      }
    ]'

    Invoke-RestMethod -Uri $url -Headers @{Authorization = "Bearer $(system.accesstoken)"} -ContentType "application/json-patch+json" -Method patch -body $body

请查看此文档以获取更多信息。

上述步骤实际上做了以下事情:

创建新工作项-->自动触发Azure管道-->Azure管道运行脚本调用rest api将wiki页面添加到工作项。


推荐阅读