我正在尝试调用REST API以获取以前的构建详细信息,但是当我尝试运行调用API的脚本时,我在标题中收到错误:
401 - 未经授权:由于凭据无效,访问被拒绝
它正在构建服务器上使用Build Agent的凭据。构建服务器可以看到TFS URL,因为它能够成功构建。如果我尝试使用我的凭据调用API,它可以工作。它只适用于运行构建代理程序的帐户。
有什么想法吗?
答案 0 :(得分:1)
您是如何在脚本中设置授权的?
要使您的脚本能够使用构建过程OAuth令牌,请转到 构建定义的选项选项卡,然后选择允许脚本访问 OAuth令牌(参考下面的屏幕截图以启用选项)。
以下脚本适用于我:
onTouch()
例如:
$url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/build/builds/14?api-version=2.0"
Write-Host "URL: $url"
$result = Invoke-RestMethod -Uri $url -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
Write-Host "$result = $($result | ConvertTo-Json -Depth 1000)"