使用 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",然后重试。
有了在构建期间获取 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",然后重试。