使用Rest API获取Azure DevOps构建的构建结果

时间:2019-05-29 10:19:32

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

我试图通过REST API获得Azure DevOps构建的结果,即成功/失败,以便我可以使用结果将下一个构建排入队列。

我已经使用下面的powershell脚本来获取构建细节。但是,状态仅在构建是否“完成”时提供信息,而构建是否成功则不会获得该信息。

$Urinew = "https://<Org>/<project>/_apis/build/builds/"
$Uri2 = $Urinew+$buildId+"?api-version=5.0"
$responseFromGet = Invoke-RestMethod -Method Get -ContentType application/json -Uri $Uri2 -Headers @{Authorization=("Basic {0}" -f $base64authinfo)}
Write-host $responseFromGet
$status = $responseFromGet.status

我尝试使用此link来获取构建结果。试图也获得构建定义,但这也没有提供构建结果的信息。我也尝试过日志,同样是同样的问题。 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

status是构建的当前状态(进行中,已完成等),结果状态位于属性result中,检查您的responseFromGet.result

答案 1 :(得分:0)

您可以通过以下脚本获取构建结果。

 $personalAccessToken="XXXXXX"
        $token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($personalAccessToken)"))
       $header = @{Authorization=("Basic {0}" -f $token)}
        $projectsUrl = "https://dev.azure.com/{org}/{project}/_apis/build/builds?api-version=5.0&resultFilter=all&definitions=XX"
        $projects = Invoke-RestMethod -Uri $projectsUrl -Method Get  -Headers $header
Write-Host  "Pipeline = $($projects.value.result| ConvertTo-Json -Depth 1)"

enter image description here