代码之家  ›  专栏  ›  技术社区  ›  Agat

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

  •  1
  • Agat  · 技术社区  · 8 年前

    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)"
    

    总的来说,除了一件事,一切都很好。收到以下错误消息时,我似乎没有某种权限更新此值:

    您没有对变量执行此操作的权限 管理员角色。

    然而:

    1. $env:SYSTEM_ACCESSTOKEN 在任何情况下,我都不知道当前正在运行的管道的标识是什么以及它的设置位置

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

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

    那么,关于设置当前正在执行的生成管道标识的权限有什么提示吗?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Andy Li-MSFT    8 年前

    OAuth访问令牌是用“”创建的 Project Collection Build Service(xxx) “账户,但不是你的账户。

    所以你只需要加上“ 项目集合生成服务(xxx) Administrator 变量组的角色。

    enter image description here

    推荐文章