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

问题描述

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

解决方法

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

在此处查看教程以Add a custom field

此处勾选Add a rule to a work item type,在创建工作项时触发,并将wiki url设置为自定义字段值。

enter image description here

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

请检查以下步骤:

1、创建由Work item created事件触发的web hook

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

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

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

2、创建一个新的“传入 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页面添加到工作项中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...