Azure devops 没有从运行管道通过Azure DevOps REST API更新变量组的权限

Azure devops 没有从运行管道通过Azure DevOps REST API更新变量组的权限,azure-devops,azure-pipelines,azure-devops-rest-api,Azure Devops,Azure Pipelines,Azure Devops Rest Api,简而言之,我试图在从构建管道执行PowerShell脚本时更新变量组(增加构建编号,但这一部分并不重要) 正如中所建议的,我使用的代码类似于: $url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/build-release/definitions/$($env:SYSTEM_DEFINITIONID)?api-version=2.0" Write-Host "URL: $url" $p

简而言之,我试图在从构建管道执行PowerShell脚本时更新变量组(增加构建编号,但这一部分并不重要)

正如中所建议的,我使用的代码类似于:

$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\u ACCESSTOKEN
    实际上应该属于从Azure内部调用的进程(管道执行进程),所以它也应该可以访问变量组。(在任何情况下,我都不知道当前正在运行的管道的标识是什么以及它的设置位置)

  • 我可以理解这个过程是在一台机器上执行的(实际上,是跨不同的系统执行的,所以这很复杂,并不意味着执行标识的管道可以直接访问变量组),但是我找不到任何关于如何设置所有这些访问权限的文档。(所附链接上的文章未提及访问权)

  • 我已尝试将任何(可能相关的)用户/组添加/设置到组变量权限(
    Security
    变量组部分),但RESTAPI更新仍然没有成功。


    因此,关于设置当前正在执行的生成管道标识的权限的任何提示?

    OAuth访问令牌是使用“
    项目集合生成服务(xxx)
    ”帐户创建的,而不是您的帐户

    因此,您只需将“
    项目集合生成服务(xxx)
    ”帐户添加为变量组的
    管理员
    角色