in src/main/java/com/spotify/github/v3/clients/GitHubClient.java [1116:1139]
private CompletableFuture<HttpResponse> handleResponse(
final HttpRequest httpRequest, final HttpResponse httpResponse) {
final CompletableFuture<HttpResponse> future = new CompletableFuture<>();
// avoid multiple redirects
final AtomicBoolean redirected = new AtomicBoolean(false);
processPossibleRedirects(httpResponse, redirected)
.handle(
(res, ex) -> {
if (Objects.nonNull(ex)) {
future.completeExceptionally(ex);
} else if (!res.isSuccessful()) {
try {
future.completeExceptionally(mapException(httpRequest, res));
} catch (final Throwable e) {
future.completeExceptionally(e);
}
} else {
future.complete(res);
}
return res;
})
.join();
return future;
}