Mit der neuen Möglichkeit, das OAuth-Token während eines Builds auf die VSTS-API zuzugreifen, habe ich versucht, ein Skript zu schreiben, das bestimmte Builds löscht.Löschen von VSTS-Builds mit dem OAuth-Token
Lesen baut funktioniert gut so:
$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
Aber während ein Build zu löschen versuchen, erhalte ich eine 403 Forbidden Fehler:
$deleteUrl = [string]::Format("{0}/_apis/build/builds/{1}?api-version=2.0", $baseUrl, $id)
$response = Invoke-WebRequest -Uri $url -Headers $headers -Method Delete
löscht einfach nicht möglich, mit dem OAuth-Token Von VSTS zum Build bereitgestellt oder muss ich die Löschanforderung anders aufrufen?
Danke. Eddie. Beim Versuch, die Berechtigung zum Löschen von Builds in der Build-Definition zu ändern, erhalte ich den folgenden Fehler: VSS012010: Ungültige Benutzer-ID: 1c8ede55-4f4d-40e6-8038-7b4cfc94db64. Service-Identität ist nicht erlaubt. "(Für Project Build Service und Project Collection Build Service). Nach dem Schließen des Dialogs und dem erneuten Öffnen scheint es immer noch gespeichert zu sein, aber während des Builds macht es keinen Unterschied. –
@PascalBerger Ich habe gerade einen kurzen Test mit Ihrem Code durchgeführt. Ich bekomme die gleiche Fehlermeldung wie Sie, wenn Sie die Bauberechtigung zum Löschen setzen. Der Build kann jedoch während des Erstellungsprozesses erfolgreich gelöscht werden. –
@PascalBerger Ich habe die Berechtigung für dieses Konto festgelegt: Project Collection Build Service (MyAccountName). –