Azure DevOps API 取消除当前构建之外的所有构建

问题描述 投票:0回答:0

我有一个脚本可以取消 Azure DevOps 管道中以前的构建。

这是我的代码:

$user = ""

$token = "<PAT>"

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

#repo id
$repoURL = "https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repo}?api-version=4.1"
$repo =  Invoke-RestMethod -Uri $repoURL -Method Get -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$repoId = $repo.id


$buildURL = "https://dev.azure.com/{organization}/{project}/_apis/build/builds?repository.type=TfsGit&repository.id=$repoId&branchName=refs/heads/develop&api-version=6.0"
$builds =  Invoke-RestMethod -Uri $buildURL -Method Get -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

foreach($build in $builds.value)
{    
    if ($build.status -ne "completed")
    {
        $buildId = $build.id
        $uri = "https://dev.azure.com/{organization}/{project}/_apis/build/builds/$($buildId)?api-version=5.1"
        $json = @{status="Cancelling"} | ConvertTo-Json -Compress
        $build = Invoke-RestMethod -Uri $uri -Method Patch -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType "application/json" -Body $json
        Write-Host $build
    }
}

这很好用,但是它取消了所有构建。我如何取消除当前构建之外的所有构建?

azure-devops-rest-api
© www.soinside.com 2019 - 2024. All rights reserved.