VSTS - 允许脚本访问OAuth令牌的位置'到哪里去了?

时间:2018-06-07 12:50:13

标签: powershell azure-devops azure-pipelines

我有使用Powershell脚本访问VSTS API的VSTS版本,类似于Microsoft's Documentation中详述的内容。

该文件指出:

  

要使脚本能够使用构建过程OAuth令牌,请转到构建定义的“选项”选项卡,然后选择“允许脚本访问OAuth令牌”。

     

完成后,您的脚本可以使用SYSTEM_ACCESSTOKEN   环境变量,用于访问VSTS REST API。例如:

示例:

$url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/build-release/definitions/$($env:SYSTEM_DEFINITIONID)?api-version=2.0"
Write-Host "URL: $url"
$definition = Invoke-RestMethod -Uri $url -Headers @{
    Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
Write-Host "Definition = $($definition | ConvertTo-Json -Depth 1000)"

详见微软文档,我确定你曾经去过Build>选项并点击“允许脚本访问OAuth令牌”,但不再存在(请参见下图)。

enter image description here

当我尝试构建时,我得到以下内容(对于我的旧版本没有发生):

  

Invoke-RestMethod:   {" $ id":" 1"," innerException":null," message":" TF400813:用户&# 39;'是   未授权访问此

此外,当我克隆一个版本(3个月前我做的时效果很好)时,该属性设置为false(它在原版上设置为true)。

enter image description here

更新:如果我从VSTS导出,更改该属性并再次导入,它可以工作,但我真的需要一个没有这种手动干预的解决方案。

现在应该怎么做?

1 个答案:

答案 0 :(得分:3)

现在可以在代理阶段使用

enter image description here