Как программно составить список пулов агентов VSTS из PowerShell?
Я хочу подключиться к VSTS и получить список пулов агентов. Я хочу перечислить пулы агентов и затем удалить агентов на сервере VSTS. Я не могу найти документацию о том, как это сделать в справочнике VSTS API.
Я подключаюсь к VSTS нормально, чтобы перечислить проекты, например, но как перечислить пулы агентов?
$User = 'mark.allison@domain.com'
$PersonalAccessToken = '{PAT_TOKEN}'
$base64authinfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $User, $PersonalAccessToken)))
$vstsAccount = "{VSTS_ACCOUNT}"
# projects
$resource = 'projects'
$uri = "https://sabinio.visualstudio.com/DefaultCollection/_apis/$($resource)?api-version=3.0"
$projects = Invoke-RestMethod -Method Get -ContentType application/json -Uri $Uri -Headers @{Authorization=("Basic {0}" -f $base64authinfo)}
1 ответ
Я также ничего не нашел в официальных документах.
Однако, проверив сетевой трафик, я выяснил следующее: https://xyz.visualstudio.com/_apis/distributedtask/pools/ - это как получить пулы агентов.
Таким образом, с запросом GET вы получите список пулов агентов, который включает в себя имя, идентификатор и некоторые другие свойства. Если вы отправите запрос DELETE на этот URL с идентификатором пула, который хотите удалить, он будет удален.
Если сначала вы хотите получить агентов пула агентов, вы должны выполнить GET для:
https://xyz.visualstudio.com/_apis/distributedtask/pools/POOLID/agents
Затем снова вы получите список агентов этого пула с именем, идентификатором и т. Д.
Чтобы удалить этого агента, вы отправляете запрос DELETE на https://xyz.visualstudio.com/_apis/distributedtask/pools/POOLID/agents/AGENTID
Таким образом, в вашем скрипте PowerShell вам также не нужно извлекать что-либо "специфичное для проекта", поскольку Agent Pools и Agents доступны для всех проектов коллекции.
надеюсь, это поможет