in src/main/java/org/apache/sling/tooling/lc/jira/IssueFinder.java [45:81]
public List<Issue> findIssues(List<String> issueKeys) throws IOException {
if (issueKeys.isEmpty()) {
return Collections.emptyList();
}
HttpClient client = HttpClientBuilder.create().build();
HttpGet get;
try {
URIBuilder builder = new URIBuilder("https://issues.apache.org/jira/rest/api/2/search")
.addParameter("jql", "key in (" + String.join(",", issueKeys) + ")")
.addParameter("fields", "key,summary,issuetype");
get = new HttpGet(builder.build());
} catch (URISyntaxException e) {
// never happens
throw new RuntimeException(e);
}
HttpResponse response = client.execute(get);
try {
if (response.getStatusLine().getStatusCode() != 200) {
throw new IOException("Search call returned status "
+ response.getStatusLine().getStatusCode());
}
try (Reader reader = new InputStreamReader(response.getEntity().getContent(), "UTF-8")) {
Response apiResponse = new Gson().fromJson(reader, Response.class);
List<Issue> issues = apiResponse.getIssues();
Collections.sort(issues);
return issues;
}
} finally {
HttpClientUtils.closeQuietly(client);
}
}