我正在尝试使用其REST API为特定分支自动创建Azure Pipelines。
但是,由于他们的文档缺少示例,因此我努力使用几乎所有的API。
List和Get之类的事情很简单。
但是,当涉及到构建队列时: https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/queue?view=azure-devops-rest-6.0
POST https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=6.0
{
"parameters": <parameters>, // how do i send paramters
"definition": {
"id": 1
},
"sourceBranch": "refs/heads/feature/my-pipeline",
"sourceVersion": "d265f01aeb4e677a25725f44f20ceb3ff1d7d767"
}
我目前正在努力发送参数。 我尝试过:
简单的JSON,例如:
"parameters": {
"appId": "bab",
"platform": "android",
"isDemo": true
}
并像这样将JSON版本化:
"parameters": "{\"appId\": \"bab\",\"platform\": \"android\",\"isDemo\": true}"
但似乎没有任何作用。
它一直给我错误:
{
"$id": "1",
"customProperties": {
"ValidationResults": [
{
"result": "error",
"message": "A value for the 'appId' parameter must be provided."
},
{
"result": "error",
"message": "A value for the 'platform' parameter must be provided."
},
{
"result": "error",
"message": "A value for the 'isDemo' parameter must be provided."
}
]
},
"innerException": null,
"message": "Could not queue the build because there were validation errors or warnings.",
"typeName": "Microsoft.TeamFoundation.Build.WebApi.BuildRequestValidationFailedException, Microsoft.TeamFoundation.Build2.WebApi",
"typeKey": "BuildRequestValidationFailedException",
"errorCode": 0,
"eventId": 3000
}
文档在如何发送此数据方面还不清楚:https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/queue?view=azure-devops-rest-6.1#propertiescollection
非常感谢您的帮助。
答案 0 :(得分:4)
我相信您无法通过Queue API传递运行时参数。而是使用Runs API
这样,您的请求正文(使用Content-type: application/json
)应类似于以下内容:
{
"resources": {
"repositories": {
"self": {
"refName": "refs/heads/feature/my-pipeline"
}
}
},
"templateParameters": {
"appId": "bab"
"platform": "android"
"isDemo": true
}
}
答案 1 :(得分:0)
我刚刚意识到在 api-version=6.0 中你也可以在队列服务上发送模板参数:
POST https://dev.azure.com/{organization}/{project}/_apis/build/builds?sourceBuildId={BUILD_BUILDID}&api-version=6.0
{
"templateParameters": { "doReleaseBuild": "True" },
"definition": {
"id": 1
},
"sourceBranch": "refs/heads/feature/my-pipeline",
"sourceVersion": "d265f01aeb4e677a25725f44f20ceb3ff1d7d767"
}