I am trying to upload a zip file via bitbucket org api. I tried to do this with postman, insomina, curl and php script. I am using the url https://api.bitbucket.org/2.0/repositories/{myAccount}/{myRepoName}/src and add the file according into client.
For php script i used httpful for example. My problem is that the zip file is added successful with my commit message and the location where i want to add the file. but when i do git pull my_branch and i try to unzip the file it says "Unable to expand --fileName.zip--", It is in an unsupported format.
Would appreciate if someone can help me out to understand and fix this issue.
Thanks
The Curl code is as follow
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.bitbucket.org/2.0/repositories/Account/myrepo/src",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name=\"481773-Pub_A-html.zip\"@/Users/user/Downloads/481773-Pub_A-html.zip------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name=\"message\"zipfile from postman------WebKitFormBoundary7MA4YWxkTrZu0gW--",
CURLOPT_HTTPHEADER => array(
"Accept: */*",
"Accept-Encoding: gzip, deflate",
"Authorization: Basic token",
"Cache-Control: no-cache",
"Connection: keep-alive",
"Content-Length: 353",
"Content-Type: multipart/form-data; boundary=--------------------------629401965265661450958266",
"Host: api.bitbucket.org",
"Postman-Token: 2f8d1349-540f-4a13-97f6-6a972075eda5,b693c61a-4423-41fc-aa19-4686bf3a2716",
"User-Agent: PostmanRuntime/7.20.1",
"cache-control: no-cache",
"content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
where as the php code is as
<span>$sourceFileInfo </span><span>=</span><span> $this</span><span>-></span><span> getFileRealName</span><span>(</span><span>$this</span><span>-></span><span>getFile</span><span>());</span><span>$url </span><span>=</span><span> sprintf</span><span>(</span><span>"https://api.bitbucket.org/2.0/repositories/{$bitbucketSettings->userName}/{$bitbucketSettings->repoName}/src"</span><span>);</span><span> $base64 </span><span>=</span><span> base64_encode</span><span>(</span><span>$bitbucketSettings</span><span>-></span><span>userName</span><span>.</span><span>':'</span><span>.</span><span>$bitbucketSettings</span><span>-></span><span>password</span><span>);</span><span> $commitMessage </span><span>=</span> <span>"This is the commit from my application"</span><span>;</span><span>$body </span><span>=</span><span> array </span><span>(</span>
<span>'message'</span> <span>=></span><span> $commitMessage</span><span>,</span>
<span>'file'</span> <span>=></span><span> $sourceFileInfo</span><span>[</span><span>'actualPath'</span><span>],</span>
<span>'branch'</span> <span>=></span><span> $this</span><span>-></span><span>getSettings</span><span>()-></span><span>branch</span><span>,</span>
<span>'folder'</span> <span>=></span> <span>'/'</span><span>.</span><span>$bitbucketSettings</span><span>-></span><span>folder </span><span>.</span> <span>'/'</span><span>.</span><span> $sourceFileInfo</span><span>[</span><span>'realName'</span><span>]</span>
<span>);</span><span>$response </span><span>=</span><span> \Httpful\Request</span><span>::</span><span>post</span><span>(</span><span>$url</span><span>)</span>
<span>-></span><span>addHeader</span><span>(</span><span>'Authorization'</span><span>,</span> <span>"Basic $base64"</span><span>)</span>
<span>-></span><span>addHeaders</span><span>(</span><span> array</span><span>(</span>
<span>'Accept-Encoding'</span> <span>=></span> <span>'gzip, deflate'</span><span>,</span>
<span>'Host'</span> <span>=></span> <span>'api.bitbucket.org'</span><span>,</span>
<span>'Cache-Control'</span> <span>=></span> <span>'no-cache'</span><span>,</span>
<span>'Accept'</span> <span>=></span> <span>'*/*'</span><span>,</span>
<span>)</span>
<span>)</span>
<span>-></span><span>sendsType</span><span>(</span><span>Mime</span><span>::</span><span>FORM</span><span>)</span>
<span>-></span><span>body</span><span>(</span>
<span>'branch='</span><span>.</span><span>$body</span><span>[</span><span>'branch'</span><span>].</span>
<span>"&message="</span> <span>.</span><span>$body</span><span>[</span><span>'message'</span><span>].</span>
<span>"&{$body['folder']}="</span> <span>.</span><span>base64_encode</span><span>(</span><span>file_get_contents</span><span>(</span><span>$body</span><span>[</span><span>'file'</span><span>]))</span>
<span>)</span>
<span>-></span><span> send</span><span>();</span>