azure-devops - 从自定义工作项内部参考 Wiki 页面
问题描述
我创建了一个自定义工作项。它有任何方法可以将此工作项与预先创建的 wiki 页面链接。我不想手动将它与工作项链接,只是在创建新工作项时自动链接。
解决方案
最方便的解决方法是为您的工作项创建自定义字段。并创建一个规则以自动将 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页面添加到工作项。
推荐阅读
- linux - 如何使用辅助存储路径在 SVN 中创建存储库
- bash - 如何在 Makefile 中使用 lsof
- c# - 将带有 2 个简单 svg-s 的 html 转换为 pdf 文件 - 在 pdf 中仅显示一个 svg
- python - 如何确保 mypy 用户输入在一组文字中
- pimcore - 如何将 pimcore 从 6.8 升级到 6.9?
- python - 是否可以使用 Keras 屏蔽层屏蔽单个单元格?
- java - Bytebuddy - 代理私有注解方法
- html - 没有富文本的单行浏览器记事本
- sql - 参数数据类型 varchar 对 AT TIME ZONE 函数的参数 1 无效
- echarts - 如何划分史密斯圆图的 X 轴