#c# #azure-devops #azure-devops-rest-api
#c# #azure-devops #azure-devops-rest-api
Вопрос:
Мы сталкиваемся с масштабной миграцией нашей среды Azure Devops в Azure. Это также означает, что все (классические) определения выпуска и определения сборки должны быть обновлены с помощью новых пулов агентов после завершения миграции. Проблема в том, что у нас их (очень) много, и обновлять их все вручную было бы непростой задачей.
Возможно ли это сделать с помощью Azure Devops REST API? И если да, то как (на C #)? Я думаю о чем-то вроде:
- Перечислите все определения сборки / выпуска (с фильтрацией, я думаю, всех их сразу было бы слишком много)
- Выполните цикл по определениям, а затем по всем заданиям агента (для определений сборки) и / или по всем этапам, а затем по заданиям агента внутри этапов (для определений выпуска)
- Обновите все задания агента с помощью новых пулов агентов (на основе текущего).
- Сохранить с комментарием?
Возможно ли это в C # с помощью вызовов API REST (или клиентских библиотек .NET)? Если да, то каким образом?
Ответ №1:
Существует Rest API для обновления определения сборки и обновления определения выпуска.
Итак, вам нужно сначала получить список определений сборки и выпуска, затем выполнить их цикл и обновить пул.
Вы можете использовать Rest API для любого языка, который вы хотите. если вам нужен C #, вы можете использовать клиентские библиотеки Azure DevOps .NET.
Комментарии:
1. Спасибо! После некоторых проблем мне удалось обновить определения выпуска с помощью . СЕТЕВЫЕ клиентские библиотеки. Самой большой проблемой было найти пул агентов, соответствующий тому, который настроен в определении выпуска. В графическом интерфейсе Azure DevOps кажется, что пул агентов связан, но на самом деле это связанная очередь агентов (идентификаторы обоих разные, очередь агентов, к счастью, имеет отношение 1-1 к пулу агентов). Вторая проблема заключалась в обновлении QueueId, потому что он действительно хорошо скрыт (в отличие от других свойств) и может быть получен / установлен только при приведении результирующего объекта. Я скоро опубликую код в обновлении выше.