VSTS-“允许脚本访问OAuth令牌”在哪里?

Hoc*_*eyJ 3 powershell azure-devops azure-pipelines

我有使用Powershell脚本访问VSTS API的VSTS构建,类似于Microsoft文档中详细介绍

该文件指出:

要使脚本能够使用构建过程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)"
Run Code Online (Sandbox Code Playgroud)

如Microsoft文档中所述,我确定您曾经去过Build> Options,然后单击“允许脚本访问OAuth令牌”,但是它不再存在(请参见下图)。

在此处输入图片说明

当我尝试构建时,会得到以下信息(对于我的旧构建不会发生):

Invoke-RestMethod:{“ $ id”:“ 1”,“ innerException”:null,“ message”:“ TF400813:用户”无权访问此文件

此外,当我克隆一个构建(3个月前完成该构建时效果很好)时,该属性设置为false(在原始属性上设置为true)。

在此处输入图片说明

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

请现在应该怎么做?

Cha*_*daC 5

现在在代理阶段可用

在此处输入图片说明