package org.arquillian.cube.docker.impl.util;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.arquillian.cube.docker.impl.model.LatestRepository;
public class GitHubUtil {
private static final String DOCKER_MACHINE_LATEST_URL = "https://api.github.com/repos/docker/machine/releases/latest";
private static Logger log = Logger.getLogger(GitHubUtil.class.getName());
public static String getDockerMachineLatestVersion() {
try {
URL url = new URL(DOCKER_MACHINE_LATEST_URL);
LatestRepository latestRepository = consumeHttp(url);
return latestRepository.getTagName();
} catch (MalformedURLException e) {
log.log(Level.WARNING, e.getMessage());
}
return "";
}
public static LatestRepository consumeHttp(URL url) {
try {
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
ObjectMapper mapper = new ObjectMapper();
LatestRepository latestRepository = mapper.readValue(connection.getInputStream(), LatestRepository.class);
return latestRepository;
} catch (IOException e) {
log.log(Level.WARNING, e.getMessage());
}
return null;
}
}