【问题标题】:Azure Devops Rest API- Get builds currently queued in Agent PoolAzure Devops Rest API - 获取当前在代理池中排队的构建
【发布时间】:2019-06-09 22:31:05
【问题描述】:

有没有办法只从 Azure DevOps REST API 获取在队列中等待特定池中可用代理的构建?

我目前有这个端点,可以为我提供池中发生的所有作业请求:

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

我查看了 API 文档,但找不到任何关于代理池的信息。

【问题讨论】:

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


    【解决方案1】:

    我需要同样的东西,但我在 Linux 上运行。 Linux 中@shayki-abramczyk 的等效答案是:

    jobRequests=$(curl -u peterjgrainger:${{ YOUR_DEVOPS_TOKEN }} https://dev.azure.com/{your_org}/_apis/distributedtask/pools/{your_pool}/jobrequests?api-version=6.0)
    queuedJobs=$(echo $jobRequests | jq '.value | map(select(has("assignTime") | not)) | length')
    runningJobs=$(echo $jobRequests | jq '.value | map(select(.result == null)) | length')
    

    【讨论】:

    • PowerShell 也可用于 Linux!
    • 感谢您也提供端点,而不仅仅是过滤步骤!
    【解决方案2】:

    没有开箱即用的 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
    

    【讨论】:

      猜你喜欢
      • 2021-07-07
      • 2020-08-11
      • 1970-01-01
      • 2019-10-14
      • 2020-09-04
      • 1970-01-01
      • 2022-09-23
      • 2020-10-22
      • 2021-06-19
      相关资源
      最近更新 更多