从自定义工作项内部参考 Wiki 页面

Posted

技术标签:

【中文标题】从自定义工作项内部参考 Wiki 页面【英文标题】:Reference Wiki page from inside customized work item 【发布时间】:2021-05-21 11:16:03 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

在这里查看教程到Add a custom field。

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

还有另一种使用 azure pipeline 和 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”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页面添加到工作项。

【讨论】:

以上是关于从自定义工作项内部参考 Wiki 页面的主要内容,如果未能解决你的问题,请参考以下文章

Firebase - 自定义重置密码登陆页面

创建自定义验证电子邮件页面 URL 和自定义重置密码页面 URL

office2016不能自己自定义安装路径吗

自定义展开 Segue

PyQt5 批量删除 Excel 重复数据,多个文件自定义重复项一键删除...

已关闭 - 复制自定义工作项以重新分配给其他工作项 Azure DevOps