【问题标题】:VSTS - Where has 'Allow Scripts to Access OAuth Token' gone?VSTS - “允许脚本访问 OAuth 令牌”去了哪里?
【发布时间】:2018-11-17 09:29:46
【问题描述】:

我有使用 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)"

正如微软文档中详述的那样,我确定您曾经转到“构建”>“选项”并单击“允许脚本访问 OAuth 令牌”,但它不再存在(见下图)。

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

调用-RestMethod : {"$id":"1","innerException":null,"message":"TF400813: 用户 '' 是 无权访问此

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

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

请问现在应该怎么做?

【问题讨论】:

    标签: powershell azure-devops azure-pipelines


    【解决方案1】:

    现在代理阶段可用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      • 2013-10-07
      • 1970-01-01
      • 2010-11-24
      相关资源
      最近更新 更多