package org.arquillian.cube.docker.impl.docker.compose; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; import java.io.File; import java.io.IOException; import static java.nio.file.Files.createTempDirectory; public class GitOperations { public File cloneRepo(String uri) { Git git = null; try { git = Git.cloneRepository() .setURI(uri) .setDirectory(createTempDirectory("cubeClone").toFile()) .call(); return git.getRepository().getDirectory(); } catch (GitAPIException e) { throw new IllegalArgumentException(e); } catch (IOException e) { throw new IllegalArgumentException(e); } finally { if (git != null) { git.close(); } } } }