在Azure Devops REST API中,我想在触发生成时链接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"
}
}
}
};
答案 0 :(得分:1)
与UI操作相同,用于链接要构建的现有工作项,只需要更新构建定义中的一个选项即可:
这是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
表示是否将创建指向工作项的链接,这些工作项将在构建完成后链接到关联的更改。要实现您想要的目标,请在此处将enabled
的值设置为true
。 id值是固定的,代表此选项,因此这里不必担心此id值。
通过此方法更新构建定义时,请不要忘记在请求正文中增加修订。 revision
递增表示将定义更新为新修订。否则 update 操作实际上不会成功。
但是,您应该担心的是,此更新应在生成触发之前完成。这样,它将在构建完成后自动创建到现有WIT的链接。
此外,这只会将此构建链接添加到与更改相关的工作项。
如果以上不是您想要的,并且您只想在触发构建时链接要构建的工作项。害怕说,没有这样的直接API可以完成。
您可能需要使用2个API:其中一个是queue build,另一个API是添加此build link to work item。
将构建链接添加到工作项的请求正文示例:
[
{
"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。与方法1不同,在此方法中,您可以自定义要向其添加构建链接的工作项ID。