【发布时间】:2018-10-25 09:37:59
【问题描述】:
简而言之,我在从构建管道执行 PowerShell 脚本时尝试更新变量组(增加内部版本号,但这部分并不那么重要)。
正如 this topic 和 Azure DevOps docs 中所建议的,我使用的代码类似于:
$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 内部调用的进程(管道执行进程),因此它也应该可以访问变量组。 (无论如何,我不知道当前运行的管道的身份是什么以及它的设置位置)。我可以理解该进程是在一台机器上执行的(实际上是跨不同系统,所以这很复杂,并不意味着执行 Identity 的 Pipeline 可以直接访问 Variable Group),但是 我找不到任何关于如何设置所有这些访问权限的文档。 (所附链接上的文章没有提及访问权限)。
我尝试将任何(可能相关的)用户/组添加/设置到组变量权限(变量组部分的Security 部分),但 REST API 更新仍然没有成功。
那么,关于为当前执行的构建管道标识设置权限的任何提示?
【问题讨论】:
标签: azure-devops azure-pipelines azure-devops-rest-api