2016-04-12 17 views
2

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?

Antwort

4

Es sieht wie ein Sicherheitsproblem aus. Das Build-Dienstkonto verfügt standardmäßig nicht über die Berechtigung zum Löschen von Builds. Setzen Sie die Berechtigung auf "Zulassen" und versuchen Sie es erneut. enter image description here enter image description here

+0

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. –

+0

@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. –

+0

@PascalBerger Ich habe die Berechtigung für dieses Konto festgelegt: Project Collection Build Service (MyAccountName). –