2017-10-25 11 views
0

私はBitbucket APIを使用するためにpowershellを使用しています。 Powershellは、プルリクエストをマージしてマージできるかどうかを確認するコマンドを送信します。何の問題もなくpowershell:bitbucket api post要求が400エラーを返します

まずコマンドの作品:

Invoke-WebRequest -Headers @{Authorization = "Basic $base64AuthInfo"} -Method Get -ContentType "application/json" -Uri "$BaseUrl/rest/api/1.0/projects/$ProjectKey/repos/$RepoSlug/pull-requests/$PullRequestId/merge?version=$PRVersion" 

私は有効なJSONレスポンスを取得しています。例:

{"canMerge":true,"conflicted":false,"outcome":"CLEAN","vetoes":[]} 

2番目のコマンドは、プル要求をマージするためにPOST要求を使用する必要があります。代わりにポストと同じコマンドがを取得:

Invoke-WebRequest -Headers @{Authorization = "Basic $base64AuthInfo"} -Method Post -ContentType "application/json" -Uri "$BaseUrl/rest/api/1.0/projects/$ProjectKey/repos/$RepoSlug/pull-requests/$PullRequestId/merge?version=$PRVersion" -Verbose 

この1つは、他の情報なしに400エラーを返します。

VERBOSE: POST https://bitbucket.example.com/rest/api/1.0/projects/TEAM/repos/tmp-test-repo/pull-requests/8/merge?version=2 with 0-byte payload 
Invoke-WebRequest : The remote server returned an error: (400) Bad Request. 
At line:1 char:1 
+ Invoke-WebRequest -Headers @{Authorization = "Basic $base64AuthInfo"} ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException 
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand 

POSTリクエストはどのように動作させることができますか?

参考:Bitbucket documentation

+0

* REST * APIを考慮して、 'Invoke-RestMethod'を試してみることができます。 – TheIncorrigible1

答えて

0

問題は、PowerShellは、出力が起動-WebRequestクラスの出力で詳細を拡大していないので、これは本当にハードな調査を行っていることです。 私が使用していたアカウントに問題があることが判明しました。応答ヘッダーを取得するためにFiddlerを使用した後、Bitbucket APIから詳細な応答が得られたため、問題を解決できました。

関連する問題