从自定义工作项中引用 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 hook 由 Work 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 页面添加到工作项。
我创建了一个自定义工作项。它有任何方法可以 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 hook 由 Work 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 页面添加到工作项。