从自定义工作项中引用 Wiki 页面

Reference Wiki page from inside customized work item

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

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

在此处查看教程 Add a custom field

这里勾选Add a rule to a work item type,创建工作项时会触发,设置wikiurl为自定义字段值

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

请检查以下步骤:

1,创建 web hookWork item created 事件触发

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

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

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

2、新建“Incoming Webhook”service connection.

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

3、创建yaml pipeline.

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

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

 

在管道中添加脚本任务以调用 work item update rest 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

请查看 this document 了解更多信息。

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

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