Azure Devops Rest API - 查找特定代理池上的队列作业

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

来自 Azure-DevOps Rest API 文档 https://learn.microsoft.com/en-us/rest/api/azure/devops/?view=azure-devops-rest-5.1 没有明确的查询方法对于在特定代理池上运行的作业。

经历了不同的 API 调用以及 fiddler。

curl -u X:X https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/agents?api-version=5.1-preview.1
--> 获取特定代理池上正在运行的代理

用于获取特定代理池队列上的作业的 REST API 调用是什么?我期望一个 JSON 输出,其中包含在特定代理池上运行的作业。

azure azure-devops azure-devops-rest-api
2个回答
7
投票

您可以使用此 Rest API 获取特定池中的所有作业请求:

https://dev.azure.com/{organiztion}/_apis/distributedtask/pools/{poolId}/jobrequests

现在你可以只过滤正在运行的作业,怎么样?对于正在运行的作业,没有

result
属性,因此在 PowerShell 中您可以执行如下操作:

$json = $jobs | ConvertFrom-Json
$runningJobs = $json.Where({ $_.PSobject.Properties.name -notcontains "result" })

2
投票

此答案中的 URL 不适用于当前的 API 版本 7.1。

但是在 GitHub 问题 中,我发现了这个未记录的 API 的另一个 URL 变体,它在我的测试中仍然有效。

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

然后您可以过滤未设置

assignTime
的项目。这些是待处理的工作。

© www.soinside.com 2019 - 2024. All rights reserved.