用于 运行 构建或管道的 Azure REST API
Azure REST API for running builds or pipelines
我正在尝试使用他们的 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}"
但 none 似乎有效。
它一直给我错误:
{
"$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
非常感谢您的帮助。
我相信您不能通过队列 API 传递运行时参数。相反,使用 Runs API
这样,您的请求正文(使用 Content-type: application/json
)应该看起来类似于:
{
"resources": {
"repositories": {
"self": {
"refName": "refs/heads/feature/my-pipeline"
}
}
},
"templateParameters": {
"appId": "bab"
"platform": "android"
"isDemo": true
}
}
我刚刚意识到在 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"
}
我正在尝试使用他们的 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}"
但 none 似乎有效。
它一直给我错误:
{
"$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
非常感谢您的帮助。
我相信您不能通过队列 API 传递运行时参数。相反,使用 Runs API
这样,您的请求正文(使用 Content-type: application/json
)应该看起来类似于:
{
"resources": {
"repositories": {
"self": {
"refName": "refs/heads/feature/my-pipeline"
}
}
},
"templateParameters": {
"appId": "bab"
"platform": "android"
"isDemo": true
}
}
我刚刚意识到在 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"
}