2
ビルド中にVSTS APIにアクセスするOAuthトークンを新たに取得する可能性があるため、特定のビルドを削除するスクリプトを作成しようとしました。OAuthトークンを使用してVSTSビルドを削除する
読書は、このような細かい作品のビルド:
$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禁止エラーを取得:
$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によって提供されるか、削除要求を別の方法で呼び出す必要がありますか?
ありがとうございました。エディビルド定義の 'Delete builds'パーミッションを変更しようとすると、次のエラーが表示されます。' VSS012010:無効なユーザID:1c8ede55-4f4d-40e6-8038-7b4cfc94db64。サービスアイデンティティは許されません。」(プロジェクトビルドサービスとプロジェクトコレクションビルドサービス)ダイアログを閉じて再度開くとまだ保存されているようですが、ビルドを実行している間は違いはありません。 –
@PascalBerger私はちょうどあなたのコードを使って簡単なテストをしました。ビルドの削除権限を設定したときと同じエラーメッセージが表示されます。ただし、ビルドプロセス中にビルドを正常に削除することはできます。 –
@PascalBergerこのアカウントのアクセス許可をProject Collection Build Service(MyAccountName)に設定しました。 –