Создание Bitbucket-репозитория в Java через REST

Я пытаюсь создать хранилище Bitbucket, используя их REST-API. Кажется, все работает, кроме установки "родительского" проекта, в котором необходимо создать хранилище. По этой ссылке приведен пример cURL. В теле параметр "scm" установлен как "git" или "hg", оба из которых являются строками, а параметр "проект" выглядит как объект json, содержащий пару ключ-значение. Все, что я пробовал до сих пор, не работает (объект json, строка и т. Д.)

Вопрос: Как я могу создать хранилище В конкретном проекте?

Мой код выглядит следующим образом:

RestTemplate restTemplate = new RestTemplate();
String url = "https://api.bitbucket.org/2.0/repositories/" + tName + "/" + rName;
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Basic 1234567890qwert");
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));

MultiValueMap<String, String> project = new LinkedMultiValueMap();
project.add("key", "aaaaaaaa"); //the repo should be created in the project aaaaaaaa

MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
postParameters.add("scm", "hg"); //hg or git, does not matter
postParameters.add("project", project); //<-- the api ignores the declared project

HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<MultiValueMap<String, Object>>(body, headers);

ResponseEntity<BitbucketRepository> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, BitbucketRepository.class);

System.out.println("createRepository: " + response);
return response;

1 ответ

Вы можете использовать библиотеку bitbucket-rest, чтобы сделать это так:

BitbucketClient client = BitbucketClient.builder()
.endPoint("http://127.0.0.1:7990")
.credentials("admin:password") // will base64 for you if not already done. Can optionally use token auth as well.
.build();

CreateRepository crepo = CreateRepository.create("my-repo", true);
Repository repo = client.api().repositoryApi().create("my-project", crepo);
Другие вопросы по тегам