Можно ли установить область действия переменной группы с помощью DevOps CLI или через REST

#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               
         ],
         ...
      }
    ],
  ...
}
 

Примечание:

  1. Пожалуйста, используйте свой собственный более новый revision .
  2. id Значение в lastRelease — это ваш идентификатор определения релиза.
  3. Укажите имя этапа в environments name .
  4. variableGroups Значение в environments — это идентификатор группы переменных, область действия которой вы хотите изменить.

Комментарии:

1. Я отредактировал свой OP, чтобы показать сценарий, в котором можно извлечь определение выпуска, и вывести группы переменных, связанные с каждой средой. Это не мой вопрос. Я пытаюсь получить доступ к «области видимости» группы переменных на уровне определения выпуска (см. Изображение в моем OP). Если у вас есть дополнительная информация о том, как это изменить, пожалуйста, дайте мне знать.

2. @user2503078 Вы хотите изменить область действия с Release на Stage для одной группы переменных? Если это так, вы можете установить идентификатор переменной группы environments variableGroups . Пожалуйста, посмотрите мое редактирование.