С новой возможностью получить токен OAuth для доступа к API VSTS во время сборки, я попытался написать скрипт, который удаляет определенные сборки.Удалять сборки VSTS с использованием OAuth Token
Чтение строит отлично работает так:
$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
ли удаление просто не представляется возможным с OAuth маркер предоставленные VSTS для сборки или мне нужно вызвать запрос удаления по-разному?
Спасибо. Эдди. При попытке изменить разрешение «Удалить сборку» в определении сборки я получаю следующую ошибку: «VSS012010: Недопустимый идентификатор пользователя: 1c8ede55-4f4d-40e6-8038-7b4cfc94db64. Идентификатор службы не разрешен. '(Для службы сборки проекта и сборки сборки проекта). После закрытия диалога и повторного открытия он все еще сохраняется, но при запуске сборки это не имеет никакого значения. –
@PascalBerger Я только что быстро проверил ваш код. Я получаю то же сообщение об ошибке, что и при установке разрешения на удаление. Но сборка может быть успешно удалена во время процесса сборки. –
@PascalBerger Я установил разрешение для этой учетной записи: Project Build Build Service (MyAccountName). –