Azure devops 如何通过API触发azure管道,而不报告它是手动触发的

Azure devops 如何通过API触发azure管道,而不报告它是手动触发的,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我们有一个Azure管道构建一个静态站点。当内容存储库发生更改时,需要重建站点。为此,我们使用了webhook和。对构建进行排队的请求非常简单,如图所示 我不喜欢的是,在构建列表中,int表示“为person XY手动触发”,其中person XY是生成API请求中使用的凭据的人。这看起来很混乱,因为任何API请求都被标记为“手动请求”似乎很奇怪。如何获得语义更正确的消息,最好的方法是什么 我发现有一个原因可以在请求中发送。但是这些值似乎都不代表我想要的,而且其中一些不起作用(可能需要额外的属性

我们有一个Azure管道构建一个静态站点。当内容存储库发生更改时,需要重建站点。为此,我们使用了webhook和。对构建进行排队的请求非常简单,如图所示

我不喜欢的是,在构建列表中,int表示“为person XY手动触发”,其中person XY是生成API请求中使用的凭据的人。这看起来很混乱,因为任何API请求都被标记为“手动请求”似乎很奇怪。如何获得语义更正确的消息,最好的方法是什么


我发现有一个
原因可以在请求中发送。但是这些值似乎都不代表我想要的,而且其中一些不起作用(可能需要额外的属性,并且没有相关的文档)。

最后,我使用了
all
值,还通过
requestedFor
属性覆盖了person。这导致了“其他构建原因”的消息,这对我来说似乎是有用的

{ 
"definition": {
    "id": 17
},
"reason":"all",
"requestedFor": {
    "id": "4f9ff423-0e0d-4bfb-9f6b-e76d2e9cd3ae"
}
}


但是,我不确定此“所有原因”值是否有任何不必要的后果。

根据我的测试,当您使用Rest API对生成进行排队并设置生成原因时,原因可能会显示在生成中(除了:batchedCI和buildCompletion)

以下是Rest API示例:

Post https://dev.azure.com/Organization/Project/_apis/build/builds?api-version=4.1
请求机构:

{ 
"definition": {
    "id": 372 
},

"reason":"pullRequest"

}
值:
checkInShelveset
pullRequest
schedule
可以显示它们自己的名称

值:
manual
none
可以显示手动触发

其他值(例如All、userCreated)将显示
其他生成原因

值:batchedCI和buildCompletion。

BatchedCI:由Git推送或TFVC签入触发的连续集成(CI),已选择批更改

这意味着需要批量更改来实现此触发。因此,它不支持在RESTAPI中构建队列

buildCompletion:您可以参考这个原因,它不支持RESTAPI队列生成


注意:如果您输入自定义值或拼写错误,它将始终显示手动触发器。

Hi@mivra。这个问题有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒一下。谢谢@Kevin Lu MSFT。这是一个伟大的总结,标志着它被接受。关于原因值(尤其是“全部”)是否会导致一些不必要的副作用,有什么见解吗?