Поиск комментариев в репозитории Bitbucket в деталях коммитов - PullRequest
0 голосов
/ 12 июня 2019

Мы пытаемся найти определенный текст в Bitbucket Commits из нашего кода JAVA. Для этого нам нужно использовать веб-сервис REST

Мы пытались использовать APT /2.0/repositories/ndomusername‹/ enjrepo_slug уговоры / коммиты, но он возвращает все коммиты из этого репозитория

Нам нужны только те детали фиксации, которые имеют определенный текст "xyz"

Опять мы нашли один API для поиска кода https://api.bitbucket.org/2.0/teams/{username}/search/code здесь выдается ошибка: сервер вернул код ответа HTTP: 405 метод не разрешен

String commitsUrl="https://api.bitbucket.org/2.0/teams/"+bitbucketUsername+"/search/code";

        URL url = new URL(commitsUrl);
        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
        connection.setRequestMethod("GET");         
        String encoded = Base64.getEncoder().encodeToString((bitbucketUsername+":"+bitbucketPasscode).getBytes(StandardCharsets.UTF_8));
        connection.setRequestProperty("Authorization", "Basic "+encoded);
        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        connection.setDoOutput(true);
        String body = "search_query="+search_query;
        os = connection.getOutputStream();
        os.write(body.getBytes(StandardCharsets.UTF_8));

        connection.connect();
        br = new BufferedReader(new InputStreamReader((connection.getInputStream())));

Отображение ошибки: метод 405 не разрешен в

Ожидается: возврат JSON согласно описанию в ссылке. https://developer.atlassian.com/bitbucket/api/2/reference/resource/teams/%7Busername%7D/search/code

1 Ответ

0 голосов
/ 19 июня 2019

К сожалению, мы не нашли никакой возможности поиска в комментариях.

Теперь мы подходим по-другому:

Мы принимаем все коммиты, используя REST API репозитории {username} {repo_slug} коммиты И вручную сравните текст поиска по полю комментария.

String commitsUrl=ROOT_REPOSITORY+bitbucketUsername+"/"+repoName+"/commits/";

URL url = new URL(urlString);

HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();

connection.setRequestMethod(methodType);    

connection.setRequestProperty("Authorization", "Bearer  "+token);

connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 

connection.connect();

BufferedReader br = new BufferedReader(new InputStreamReader((connection.getInputStream())));

StringBuilder sb = new StringBuilder();

String output;

while ((output = br.readLine()) != null) {
  sb.append(output);
}

JSONObject root = new JSONObject(sb.toString());

JSONArray array = root.getJSONArray("values");

for(int i=0; i< array.length(); i++) {

JSONObject obj = (JSONObject) array.get(i);



String message = obj.getString("message");


//From this message string search your text
...