I am trying to create a Bitbucket repository using their REST-API. Everything seems to work except setting the "parent" project, where the repository needs to be created in. On this link a cURL example is provided. In the body, the parameter "scm" is set as either "git" or "hg", both being Strings, the parameter "project" seems to be a json object containing a key-value pair. Everything I tried so far did not work (json object, string, etc.)
Question: How can I create a repository IN a specific project?
My code looks the following:
<span>RestTemplate</span><span> restTemplate </span><span>=</span> <span>new</span> <span>RestTemplate</span><span>();</span>
<span>String</span><span> url </span><span>=</span> <span>"https://api.bitbucket.org/2.0/repositories/"</span> <span>+</span><span> tName </span><span>+</span> <span>"/"</span> <span>+</span><span> rName</span><span>;</span>
<span>HttpHeaders</span><span> headers </span><span>=</span> <span>new</span> <span>HttpHeaders</span><span>();</span><span>headers</span><span>.</span><span>set</span><span>(</span><span>"Authorization"</span><span>,</span> <span>"Basic 1234567890qwert"</span><span>);</span><span>headers</span><span>.</span><span>setAccept</span><span>(</span><span>Collections</span><span>.</span><span>singletonList</span><span>(</span><span>MediaType</span><span>.</span><span>APPLICATION_JSON</span><span>));</span>
<span>MultiValueMap</span><span><</span><span>String</span><span>,</span> <span>String</span><span>></span><span> project </span><span>=</span> <span>new</span> <span>LinkedMultiValueMap</span><span>();</span><span>project</span><span>.</span><span>add</span><span>(</span><span>"key"</span><span>,</span> <span>"aaaaaaaa"</span><span>);</span> <span>//the repo should be created in the project aaaaaaaa</span>
<span>MultiValueMap</span><span><</span><span>String</span><span>,</span> <span>Object</span><span>></span><span> body </span><span>=</span> <span>new</span> <span>LinkedMultiValueMap</span><span><>();</span><span>postParameters</span><span>.</span><span>add</span><span>(</span><span>"scm"</span><span>,</span> <span>"hg"</span><span>);</span> <span>//hg or git, does not matter</span><span>postParameters</span><span>.</span><span>add</span><span>(</span><span>"project"</span><span>,</span><span> project</span><span>);</span> <span>//<-- the api ignores the declared project</span>
<span>HttpEntity</span><span><</span><span>MultiValueMap</span><span><</span><span>String</span><span>,</span> <span>Object</span><span>>></span><span> requestEntity </span><span>=</span> <span>new</span> <span>HttpEntity</span><span><</span><span>MultiValueMap</span><span><</span><span>String</span><span>,</span> <span>Object</span><span>>>(</span><span>body</span><span>,</span><span> headers</span><span>);</span>
<span>ResponseEntity</span><span><</span><span>BitbucketRepository</span><span>></span><span> response </span><span>=</span><span> restTemplate</span><span>.</span><span>exchange</span><span>(</span><span>url</span><span>,</span> <span>HttpMethod</span><span>.</span><span>POST</span><span>,</span><span> requestEntity</span><span>,</span> <span>BitbucketRepository</span><span>.</span><span>class</span><span>);</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"createRepository: "</span> <span>+</span><span> response</span><span>);</span>
<span>return</span><span> response</span><span>;</span>