【发布时间】:2016-03-24 10:08:56
【问题描述】:
我想通过 REST API 开始构建 Azure Pipelines。有一个API for queuing builds,但我找不到定义变量的方法。
【问题讨论】:
标签: azure-devops azure-pipelines azure-devops-rest-api
我想通过 REST API 开始构建 Azure Pipelines。有一个API for queuing builds,但我找不到定义变量的方法。
【问题讨论】:
标签: azure-devops azure-pipelines azure-devops-rest-api
当您需要在排队时设置值时,接受的答案并不能真正回答问题。
解决方案实际上非常简单,您只需在 json 有效负载中添加一个 parameters 字段。内容应该是一个包含参数的json字符串(不是直接的对象)
例如:
{
"parameters": "{\"ReleaseNumber\": \"1.0.50\", \"AnotherParameter\": \"a value\"}",
"definition": {
"id": 2
}
}
编辑:此功能现在正确记录为an optional stringified dictionary。见https://www.visualstudio.com/fr-fr/docs/integrate/api/build/builds#queue-a-build
【讨论】:
reason 字段,但请注意,虽然文档指定“buildCompletion”是字符串选项之一,但调用将失败.可用原因的真实列表在这里——docs.microsoft.com/en-us/azure/devops/extend/reference/client/…
变量包含在definitions 中,您可以先通过 build-definition api 更新构建定义以设置变量,然后将构建排队。
以下是通过 build-definition api 获取的变量部分:
"variables": {
"system.debug": {
"value": "false",
"allowOverride": true
},
"BuildConfiguration": {
"value": "release",
"allowOverride": true
},
"BuildPlatform": {
"value": "any cpu",
"allowOverride": true
}
},
【讨论】:
对于任何对此有问题的人(我做过),自接受答案以来使用的 API 有所不同(这对我来说根本不起作用)。但是按照 Cyprien Autexier 的建议,我查看了引擎盖(Firefox 开发工具),发现门户不再使用 Builds API。它使用管道一 (https://docs.microsoft.com/en-us/rest/api/azure/devops/pipelines/runs/run-pipeline?view=azure-devops-rest-6.1)。有了这个,完美无缺。
【讨论】:
对于任何查看此内容的人,我都能使其与 'templateParameters' 一起使用,它允许您发送 Object 而不是版本 7.1 上的 String。
POST
https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.1-preview.7
{
"sourceBranch":"Development",
"definition": {
"id": 5
}
"templateParameters": {
"PARAMETER1": "value1",
"parameter2": "valuex"
}
}
文档:https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/queue?view=azure-devops-rest-7.1
【讨论】: