#azure-devops-rest-api #azure-devops-extensions #azure-cli2
#azure-devops-rest-api #azure-devops-extensions #azure-cli2
Вопрос:
Я могу добавлять / изменять определения выпуска DevOps с помощью комбинации методов CLI и CLI REST. Объект определения выпуска не включает (насколько я могу судить) свойство, которое управляет областью действия переменной группы. Само определение выпуска принимает массив идентификаторов группы переменных, но в контексте определения выпуска также существует область действия переменной group. Где это?
Есть ли поддержка для доступа к свойству области действия переменной группы в интерфейсе CLI или CLI REST? На изображении ниже показан интерфейс портала в azure. Выбирая многоточия (…), вы можете «изменить область действия», где отображается список этапов. Затем вы сохраняете, а затем сохраняете определение выпуска.
Я записал вывод скрипача, но сообщение в теле было огромным и не очень полезным, я не видел ничего, связанного со списком областей. но, очевидно, это можно сделать. Я просто не уверен, что нужно делать это через CLI или REST.
Редактировать: вот представление скрипта. В любом месте определения выпуска, которое я вижу, нет «области видимости», которая должна содержать список имен среды. Каждое имя среды (иначе stage) содержит несколько групп переменных, связанных с каждой средой.
$sourcedefinition = getreleasedefinitionrequestwithpat $reldefid $personalAccesstoken $org $project | select -Last 1
Write-Host "Root VariableGroups: " $sourcedefinition.variableGroups
$result = @()
#search each stage in the pipeline
foreach($item in $sourcedefinition.environments)
{
Write-Host ""
Write-Host "environment name: "$item.name
Write-Host "environment variable groups: "$item.variableGroups
}
Чтобы прояснить, область, которую я ищу, не может быть в коллекции environments, поскольку она специфична для каждого элемента (этапа). Область действия устанавливается на уровне определения выпуска для данной группы переменных (снова обратитесь к изображению).
Ответ №1:
Я использую этот API для получения определений моего выпуска и обнаруживаю, что значения variableGroups
в ReleaseDefinition и в ReleaseDefinitionEnvironment различны, когда области различны.
Тогда я думаю, что если мы хотим изменить область действия с помощью REST API, нам просто нужно изменить variableGroups
и обновить определения. Мы можем использовать этот API для обновления определений.
Редактировать: например, я хочу изменить область действия с Release на Stage, я использую API, как показано ниже:
PUT https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/definitions?api-version=6.1-preview.4
Тело запроса: (Я получаю это из первого тела ответа Get Definitions API и вношу некоторые изменения, чтобы использовать его)
{
"source":"userInterface",
"revision":6,
...
"lastRelease": {
"id": 1,
...
},
...
"variables":{
},
"variableGroups":[],
"environments":[
{
"name": "Stage 1",
...
"variables":{
},
"variableGroups":[
4
],
...
}
],
...
}
Примечание:
- Пожалуйста, используйте свой собственный более новый
revision
. id
Значение вlastRelease
— это ваш идентификатор определения релиза.- Укажите имя этапа в
environments
name
. variableGroups
Значение вenvironments
— это идентификатор группы переменных, область действия которой вы хотите изменить.
Комментарии:
1. Я отредактировал свой OP, чтобы показать сценарий, в котором можно извлечь определение выпуска, и вывести группы переменных, связанные с каждой средой. Это не мой вопрос. Я пытаюсь получить доступ к «области видимости» группы переменных на уровне определения выпуска (см. Изображение в моем OP). Если у вас есть дополнительная информация о том, как это изменить, пожалуйста, дайте мне знать.
2. @user2503078 Вы хотите изменить область действия с Release на Stage для одной группы переменных? Если это так, вы можете установить идентификатор переменной группы
environments variableGroups
. Пожалуйста, посмотрите мое редактирование.