从自定义工作项内部参考 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 页面的主要内容,如果未能解决你的问题,请参考以下文章
创建自定义验证电子邮件页面 URL 和自定义重置密码页面 URL