Azure Трубопроводы: массовое одобрение развертываний в средах - PullRequest
2 голосов
/ 09 февраля 2020

Есть ли способ одобрить прогоны через CLI или API (или что-то еще)? Я ищу способ массового утверждения нескольких прогонов из разных конвейеров, но он недоступен в пользовательском интерфейсе.

Допустим, у меня есть 100 конвейеров, которые имеют задание развертывания в производственной среде. Я хотел бы утвердить все ожидающие утверждения прогоны.

В настоящее время я не могу найти что-то подобное в документах Azure DevOps REST API или CLI.

Документация по функциям: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/environments https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals

Следующий вопрос связан, но я ищу любой способ его решения, а не только через API: Утвердить развертывание конвейера yaml в Azure DevOps с использованием REST api

Ответы [ 2 ]

2 голосов
/ 14 февраля 2020

Какое предположение jessehouwing является правильным. Теперь многоэтапный режим все еще находится в режиме предварительного просмотра, и соответствующий SDK / API / расширение не был расширен и предоставлен для публикации c.

Вы можете подумать, что насчет не использования API. Я проверил соответствующий код из нашего бэкэнда, все операции для multi-stage approval содержат один обязательный параметр: approvalId. Я уверен, что вы знали, что это значение уникально и другая карта утверждения с другим значением approvalId. Это означает, что независимо от того, какой метод вы хотите использовать, approvalId является большой проблемой. И, насколько мне известно, до сих пор нет никакого API / SDK, третий инструмент или расширение может достичь этого значения напрямую .


Кроме того, для multi-stage YAML его логика процесса выпуска c не совпадает с версией, определенной с помощью пользовательского интерфейса. Таким образом, все API-интерфейсы publi c, которые могут работать с выпуском (UI), не подходят для многоэтапного выпуска.

У нас есть один нераскрытый API, можно получить Approval сообщение о многоэтапном:

https://dev.azure.com/{org}/{project}/_apis/pipelines/approvals/{approvalId}

Вы можете попробовать с утверждением списка без указания approvalId: https://dev.azure.com/{org}/{project}/_apis/pipelines/approvals. И его ответное сообщение: Query for approvals failed. A minimum of one query parameter is required.\r\nParameter name: queryParameters. Это означает, что вы должны сообщить системе указанное approval (большая проблема, о которой я упоминал ранее).

Фактически, почему approvalId является необходимой частью, это вызвано нашей структурой внутреннего кода. Я бы посоветовал вам поднять предложение по разработке API / SDK для многоэтапного здесь .

1 голос
/ 09 февраля 2020

Расширение az pipelines пока не поддерживает одобрения, я полагаю, из-за того, что многоступенчатые конвейеры все еще находятся в предварительном просмотре, и старый хаб выпуска в конечном итоге будет заменен им.

Но есть REST API, который вы можете использовать для получения списка и обновления утверждений . Их можно вызывать из PowerShell с относительной легкостью.

Или использовать vsteam модуль powershell и Get-VSTeamApproval и Set-VSTeamApproval.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...