[https://docs.microsoft.com/zh-cn/rest/api/azure/devops/distributedtask/pools/get%20agent%20pools?view=azure-devops-rest-6.0]
以上文档指示应包括部署池。不幸的是,它们没有返回(尽管所有的“自动化”池都返回了。
那么一个人如何以编程方式列出,获取(按ID)并创建/更新这些池??
更新......
在查看/ _settings / deploymentpools?view = pool时捕获网络跟踪
透露有一个_apis / distributedtask / deploymentPools的ReST调用
显示正确的信息。但是,继续搜索docs.microsoft.com不会提供有关此剩余调用的任何信息。
更新2:建议对Matt进行调用时返回(已清理)的JSON:
来自_apis / distributedtask / deploymentPools / deploymentPoolsSummary?expands = 2&api-version = 6.1-preview.1的JSON
可以看出,两者并不相同,到目前为止,只有从UI反向工程的呼叫才能显示相同的信息集(包括2个与在线和离线计数相关的必填字段)
答案 0 :(得分:1)
给出以下示例池配置:
在使用Pool API且不使用此脚本的任何过滤器时:
$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)")) }
$uri = "https://dev.azure.com/{organization}/_apis/distributedtask/pools?api-version=6.0"
Invoke-RestMethod -Method Get -Uri $uri -Headers $AzureDevOpsAuthenicationHeader |
Select-Object -ExpandProperty value |
Select-Object name, poolType
返回:
name poolType
---- --------
Default automation
Hosted automation
Hosted VS2017 automation
Hosted Windows Container automation
Hosted macOS automation
Hosted Ubuntu 1604 automation
Hosted Windows 2019 with VS2019 automation
Hosted macOS High Sierra automation
Azure Pipelines automation
似乎没有过滤器的默认设置为您建议的自动化poolType添加了一个隐式过滤器。尽管我认为可以添加一个针对部署池的过滤器,但您会得到预期的结果:
$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)")) }
$uri = "https://dev.azure.com/{organization}/_apis/distributedtask/pools?api-version=6.0&poolType=deployment"
Invoke-RestMethod -Method Get -Uri $uri -Headers $AzureDevOpsAuthenicationHeader |
Select-Object -ExpandProperty value |
Select-Object name, poolType
返回:
name poolType
---- --------
ExamplePool deployment
答案 1 :(得分:1)
包括2个与在线和离线计数相关的必填字段
我们可以使用Rest API列出部署池,通过字段onlineAgentsCount
和offlineAgentsCount
获取部署状态,并获取pool ID
。
API:
https://dev.azure.com/{Org name}/_apis/distributedtask/deploymentPools/deploymentPoolsSummary?expands=2
结果:
并通过此API获取部署池详细信息或更新部署池
API:
https://dev.azure.com/{Org name}/_apis/distributedtask/pools?poolIds={pool ID}&api-version=6.0
更新1
Microsoft文档未列出所有REST API,但是我们可以通过F12或Fiddler捕获这些API。此外,您也可以尝试使用此API,它还会显示部署池信息。
此外,您可以向user voice提出新的建议票,Microsoft Azure DevOps团队将对其进行检查。