将多个现有工作项链接到排队构建(来自 Azure Devops SDK)
Linking multiple existing work items to queued build (from Azure Devops SDK)
在 Azure Devops REST API 中,我想在触发构建时 link 一个 task\bug\story(已经存在)。我该怎么做?
checkInTicket
可能是一个解决方案,但它是 not documented。
基于 Merlin 响应的负载有效:
var payload = new object[] {
new {
op = "add",
path = "/relations/-",
value =
new {
rel = "ArtifactLink",
url = $"vstfs:///Build/Build/{buildId}",
attributes = new
{
name = "Build"
}
}
}
};
- 1.方法一
与UI操作相同,要link要构建的现有工作项,只需要更新构建定义中的一个选项:
这是api:
https://dev.azure.com/{org name}/{project name}/_apis/build/definitions/{definition id}?api-version=5.0-preview.6
在其请求正文中,请关注以下脚本部分:
"options": [
{
"enabled": true,
"inputs": {
"branchFilters": "[\"+refs/heads/*\"]",
"additionalFields": "{}"
},
"definition": {
"id": "5d58cc01-7c75-450c-be18-a388ddb129ec"
}
}
]
enabled
表示它是否会创建 links 来处理构建完成后 linked 到关联更改的项目。为了达到你想要的效果,在这里,请将 enabled
值设置为 true
。 id值是固定的,代表这个选项,所以这里不用管这个id值。
当您通过此方法更新构建定义时,请不要忘记在请求正文中增加修订。 revision
increment 表示将定义更新为新的修订版。否则 更新 操作实际上不会成功。
但是,您应该关心的是此更新应该在构建触发之前完成。因此它会在构建完成后自动创建 link 到现有的 WIT。
此外,这只会将此构建 link 添加到 与更改相关的工作项 。
- 2。方法 2
如果以上不是您想要的,而您只想 link 在触发构建时构建工作项。不敢说,没有这么直接的 API 可以完成的。
您可能需要使用 2 个 API:其中之一是 queue build, and another API is add this build link to work item。
将构建 link 添加到工作项的请求正文示例:
[
{
"op": "test",
"path": "/rev",
"value": "2"
},
{
"op": "add",
"path": "/relations/-",
"value":
{
"rel": "ArtifactLink",
"url": "vstfs:///Build/Build/{the build id that you just queued}"
}
}
]
此方法需要您在排队构建后获取生成的BuildId
,然后将其传递给workitem
API。与方法一不同的是,在该方法中,您可以自定义要添加构建link的工作项id。
在 Azure Devops REST API 中,我想在触发构建时 link 一个 task\bug\story(已经存在)。我该怎么做?
checkInTicket
可能是一个解决方案,但它是 not documented。
基于 Merlin 响应的负载有效:
var payload = new object[] {
new {
op = "add",
path = "/relations/-",
value =
new {
rel = "ArtifactLink",
url = $"vstfs:///Build/Build/{buildId}",
attributes = new
{
name = "Build"
}
}
}
};
- 1.方法一
与UI操作相同,要link要构建的现有工作项,只需要更新构建定义中的一个选项:
这是api:
https://dev.azure.com/{org name}/{project name}/_apis/build/definitions/{definition id}?api-version=5.0-preview.6
在其请求正文中,请关注以下脚本部分:
"options": [
{
"enabled": true,
"inputs": {
"branchFilters": "[\"+refs/heads/*\"]",
"additionalFields": "{}"
},
"definition": {
"id": "5d58cc01-7c75-450c-be18-a388ddb129ec"
}
}
]
enabled
表示它是否会创建 links 来处理构建完成后 linked 到关联更改的项目。为了达到你想要的效果,在这里,请将 enabled
值设置为 true
。 id值是固定的,代表这个选项,所以这里不用管这个id值。
当您通过此方法更新构建定义时,请不要忘记在请求正文中增加修订。 revision
increment 表示将定义更新为新的修订版。否则 更新 操作实际上不会成功。
但是,您应该关心的是此更新应该在构建触发之前完成。因此它会在构建完成后自动创建 link 到现有的 WIT。
此外,这只会将此构建 link 添加到 与更改相关的工作项 。
- 2。方法 2
如果以上不是您想要的,而您只想 link 在触发构建时构建工作项。不敢说,没有这么直接的 API 可以完成的。
您可能需要使用 2 个 API:其中之一是 queue build, and another API is add this build link to work item。
将构建 link 添加到工作项的请求正文示例:
[
{
"op": "test",
"path": "/rev",
"value": "2"
},
{
"op": "add",
"path": "/relations/-",
"value":
{
"rel": "ArtifactLink",
"url": "vstfs:///Build/Build/{the build id that you just queued}"
}
}
]
此方法需要您在排队构建后获取生成的BuildId
,然后将其传递给workitem
API。与方法一不同的是,在该方法中,您可以自定义要添加构建link的工作项id。