使用Azure Devops Rest API跳过阶段不起作用

时间:2020-07-08 02:13:32

标签: azure-devops azure-pipelines azure-devops-rest-api

我有一个非常基本的管道,分为四个阶段,对于生产阶段,我想从单独的管道运行。我试图根据文档使用build queue rest api并使用以下有效负载

{
"stagesToSkip": [
    "Build"
],
"definition":
{
    "id": "24"
},
"resources": {
    "repositories": {
        "self": {
            "refName": "refs/heads/master"
        }
    }
},
"variables": {}

}

当我通过仅选择一个阶段来手动运行构建并按预期方式运行它时,得到了这个有效负载,但是当我使用具有相同请求有效负载的其余api时,它将同时运行两个阶段。

enter image description here

任何指针我在做什么错??

1 个答案:

答案 0 :(得分:0)

您可以使用Run Pipeline rest api跳过阶段。

POST https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs?api-version=6.0-preview.1

请参阅以下Powershell脚本示例:

$url="https://dev.azure.com/{org}/{proj}/_apis/pipelines/{pipelineId}/runs?api-version=6.0-preview.1"

$PAT='personal access token'

$body='{
 
 "stagesToSkip":[ "Test" ]

}'

$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))

$result1 = Invoke-RestMethod -Uri $url -Headers @{authorization = "Basic $base64AuthInfo"} -Method post  -Body $body -ContentType "application/json"

请参阅以下测试结果。该阶段已成功跳过。

enter image description here