Короче говоря, я пытаюсь обновить группу переменных при выполнении сценария PowerShell из конвейера сборки (увеличение номера сборки, но эта часть не так важна).
Как это было предложено в эта тема и документы AzOUR DevOps Я использую код, подобный следующему:
$url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/build-release/definitions/$($env:SYSTEM_DEFINITIONID)?api-version=2.0"
Write-Host "URL: $url"
$pipeline = Invoke-RestMethod -Uri $url -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
Write-Host "Pipeline = $($pipeline | ConvertTo-Json -Depth 1000)"
В целом все работает нормально, кроме одной вещи.У меня нет разрешения на обновление этого значения, получая следующее сообщение об ошибке:
У вас нет прав для выполнения этой операции над группой переменных.Администратор группы переменных должен добавить вас к роли администратора.
Однако:
Это немного странно, поскольку $env:SYSTEM_ACCESSTOKEN
для меня на самом деле должен принадлежатьпроцесс (процесс выполнения конвейера), который вызывается из Azure, поэтому он также должен иметь доступ к группам переменных.( В любом случае, я не знаю, каков Идентификатор работающего в настоящий момент Pipeline и где он настроен ).
Я могу понять, что процесс выполняетсяна одной машине (на самом деле, в разных системах, так что это все сложно и не означает, что выполняющий Identity конвейер автоматически получает доступ к группе переменных), но Я не могу найти документацию о том, как настроить все этиправа доступа .(В статьях о прилагаемых ссылках ничего не говорится о правах доступа).
Я пытался добавить / настроить любых (возможно связанных) пользователей / групп в разрешения для групповой переменной (Security
(раздел «Группа переменных»), но все еще не повезло с обновлениями REST API.
Итак, есть ли какие-либо советы по настройке разрешений для текущего выполнения идентификатора сборки конвейера?