Azure Devops Rest API - получение сборок, в настоящее время находящихся в очереди в пуле агентов - PullRequest
0 голосов
/ 16 января 2019

Есть ли способ получить только те сборки, которые ожидают в очереди для доступного агента в определенном пуле, из оставшегося API Azure DevOps rest?

В настоящее время у меня есть эта конечная точка, которая предоставляет мне все запросы на задания, которые произошли в пуле:

https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolid}/jobrequests

Я просмотрел документацию по API и не могу найти что-либо, касающееся пулов агентов.

1 Ответ

0 голосов
/ 16 января 2019

Нет такого API, но мы можем использовать обычный API и фильтровать результаты.

Например, я использую предоставленный вами API и получил все сборки в пуле, затем отфильтровал результаты с помощью PowerShell, чтобы получить только сборки, ожидающие доступного агента.

Откуда мне знать, кто ждет? в результате JSON для каждой сборки есть некоторые свойства, если сборка запускается на агенте, он получает свойство assignTime, поэтому я ищу сборки без этого свойства.

#... Do the API call and get the repsone
$json = $repsone | ConvertFrom-Json

$json.value.ForEach
({
    if(!$_.assignTime)
    {
        Write-Host "Build waiting for an agent:"
        Write-Host Build Definition Name: $_.definition.name
        Write-Host Build Id: $_.owner.id
        Write-Host Queue Time $_.queueTime
        # You can print more details about the build
    }
})


# Printed on screen:
Build waiting for an agent:
Build Definition Name: GitSample-CI
Build Id: 59
Queue Time 2019-01-16T07:36:52.8666667Z

Если вы не хотите перебирать все сборки (что имеет смысл), вы можете получить ожидающие сборки следующим образом:

$waitingBuilds = $json.value | where {-not $_.assignTime} 
# Then print the details
...