使用 OAuth 令牌删除 VSTS 构建

Delete VSTS builds using the OAuth Token

有了在构建期间获取 OAuth 令牌以访问 VSTS API 的新可能性,我尝试编写一个脚本来删除某些构建。

读取构建工作正常,如下所示:

$headers = @{  Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"  }
$baseUrl = "{0}{1}" -f $env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI, $env:SYSTEM_TEAMPROJECTID
$buildsUrl = [string]::Format("{0}/_apis/build/builds?api-version=2.0", $baseUrl)
$response = Invoke-WebRequest -Uri $buildsUrl -Headers $headers

但是在尝试删除构建时我收到 403 Forbidden 错误:

$deleteUrl = [string]::Format("{0}/_apis/build/builds/{1}?api-version=2.0", $baseUrl, $id)
$response = Invoke-WebRequest -Uri $url -Headers $headers -Method Delete

是否无法使用 VSTS 为构建提供的 OAuth 令牌进行删除,或者我是否需要以不同方式调用删除请求?

这看起来像是一个安全问题。默认情况下,构建服务帐户没有 "Delete Builds" 的权限。将权限设置为 "Allow",然后重试。