List of usage examples for org.eclipse.jgit.api Git cloneRepository
public static CloneCommand cloneRepository()
From source file:org.kaazing.bower.dependency.maven.plugin.UploadBowerArtifactMojo.java
License:Open Source License
/** * Checkouts a git repo/* w w w . ja v a2s.c om*/ * @param outputDir * @param gitUrl * @param credentialsProvider * @return * @throws MojoExecutionException */ Git checkoutGitRepo(File outputDir, String gitUrl, CredentialsProvider credentialsProvider) throws MojoExecutionException { outputDir.mkdir(); try { return Git.cloneRepository().setURI(gitUrl).setDirectory(outputDir) .setCredentialsProvider(credentialsProvider).call(); } catch (Exception e) { throw new MojoExecutionException("Could not fetch git repository", e); } }
From source file:org.kabir.github.merges.model.GitRepositoryManager.java
License:Open Source License
public String cloneUserRepository() { //TODO these should be picked up by the regexp in the validator String gitUrl = gitRepositoryDetails.getGitUrl(); if (!gitUrl.endsWith(".git") || gitUrl.indexOf('/') == -1) { facesContext.addMessage(null,/*from w ww . j a va 2 s.c o m*/ new FacesMessage(gitUrl + " does not apear to be a valid git repository")); return "error"; } if (!initGitHubHelperAndAuthenticate()) { facesContext.addMessage(null, new FacesMessage("Wrong username/password")); return "error"; } File cloneDirectory = new File(userConfig.getCheckoutsDirectory(), gitRepositoryDetails.getName()); if (cloneDirectory.exists()) { facesContext.addMessage(null, new FacesMessage("Clone '" + gitRepositoryDetails.getName() + "' already exists.")); return "existing"; } Git git = null; BranchManager branchManager = null; try { git = Git.cloneRepository().setURI(gitUrl).setCredentialsProvider(getCredentialsProvider()) .setProgressMonitor(new TextProgressMonitor()).setDirectory(cloneDirectory).call(); //This checkouts the main and testing branches from the remote branchManager = new BranchManager(git, gitRepositoryDetails.getMainBranch(), gitRepositoryDetails.getTestingBranch()); //Store the git repository metadata gitRepositoryDetails.store(userConfig); userConfig.addCheckout(gitRepositoryDetails); } catch (Exception e) { Util.recursiveDelete(cloneDirectory); facesContext.addMessage(null, new FacesMessage("Error cloning the repository " + e.getMessage())); return "error"; } branchStatus = new BranchStatus(branchManager); return "view"; }
From source file:org.kie.commons.java.nio.fs.jgit.JGitFileSystemTest.java
License:Apache License
@Test public void testRemoteRoot() throws IOException, GitAPIException { final JGitFileSystemProvider fsProvider = mock(JGitFileSystemProvider.class); final File tempDir = createTempDirectory(); final Git git = Git.cloneRepository().setNoCheckout(false).setBare(true).setCloneAllBranches(true) .setURI(setupGit().getRepository().getDirectory().toString()).setDirectory(tempDir).call(); final JGitFileSystem fileSystem = new JGitFileSystem(fsProvider, null, git, "my-repo", CredentialsProvider.getDefault()); assertThat(fileSystem.isReadOnly()).isFalse(); assertThat(fileSystem.getSeparator()).isEqualTo("/"); assertThat(fileSystem.getName()).isEqualTo("my-repo"); assertThat(fileSystem.getRootDirectories()).hasSize(1); final Path root = fileSystem.getRootDirectories().iterator().next(); assertThat(root.toString()).isEqualTo("/"); assertThat(root.getRoot().toString()).isEqualTo("/"); }
From source file:org.kie.commons.java.nio.fs.jgit.util.JGitUtil.java
License:Apache License
public static Git cloneRepository(final File repoFolder, final String fromURI, final boolean bare, final CredentialsProvider credentialsProvider) { if (!repoFolder.getName().endsWith(DOT_GIT_EXT)) { throw new RuntimeException("Invalid name"); }//from ww w . j a v a2 s.c o m try { final File gitDir = RepositoryCache.FileKey.resolve(repoFolder, DETECTED); final Repository repository; final Git git; if (gitDir != null && gitDir.exists()) { repository = new FileRepository(gitDir); git = new Git(repository); } else { git = Git.cloneRepository().setBare(bare).setCloneAllBranches(true).setURI(fromURI) .setDirectory(repoFolder).setCredentialsProvider(credentialsProvider).call(); repository = git.getRepository(); } fetchRepository(git, credentialsProvider); repository.close(); return git; } catch (final Exception ex) { throw new RuntimeException(ex); } }
From source file:org.kie.workbench.common.migration.MigrationToolTest.java
License:Apache License
private static void cloneProjectRepo(final String spaceName, final String projectName) throws GitAPIException { final File projectDir = getProjectDir(spaceName, projectName); final String projectRepoDir = getProjectRepoDir(spaceName, projectName).getAbsolutePath(); Git.cloneRepository().setURI(projectRepoDir).setDirectory(projectDir).call(); }
From source file:org.kie.workbench.common.project.migration.cli.maven.PomEditorWithGitTest.java
License:Apache License
@Test public void testPomEditor() throws Exception { final String repoName = "myrepoxxxx"; HashMap<String, Object> env = new HashMap<>(); env.put("init", Boolean.TRUE); env.put("internal", Boolean.TRUE); final JGitFileSystem fs = (JGitFileSystem) ioService.newFileSystem(URI.create("git://" + repoName), env); ioService.startBatch(fs);// ww w .ja v a 2s. c om ioService.write(fs.getPath("/pom.xml"), new String( java.nio.file.Files.readAllBytes(new File("src/test/projects/generic/pom.xml").toPath()))); ioService.endBatch(); Path tmpCloned = Files.createTempDirectory("cloned"); final File gitClonedFolder = new File(tmpCloned.toFile(), ".clone.git"); final Git cloned = Git.cloneRepository() .setURI(fs.getGit().getRepository().getDirectory().toURI().toString()).setBare(false) .setDirectory(gitClonedFolder).call(); assertNotNull(cloned); Path pomPath = Paths.get("file://" + gitClonedFolder.toString() + "/pom.xml"); byte[] encoded = Files.readAllBytes(pomPath); String pomOriginal = new String(encoded, StandardCharsets.UTF_8); Model model = editor.updatePom(pomPath, cdiWrapper); assertNotNull(model); PullCommand pc = cloned.pull().setRemote("origin").setRebase(Boolean.TRUE); PullResult pullRes = pc.call(); assertEquals(pullRes.getRebaseResult().getStatus(), RebaseResult.Status.UP_TO_DATE); RebaseCommand rb = cloned.rebase().setUpstream("origin/master"); RebaseResult rbResult = rb.setPreserveMerges(true).call(); assertTrue(rbResult.getStatus().isSuccessful()); pomPath = Paths.get("file://" + gitClonedFolder.toString() + "/pom.xml"); encoded = Files.readAllBytes(pomPath); String pomUpdated = new String(encoded, StandardCharsets.UTF_8); assertFalse(pomOriginal.equals(pomUpdated)); }
From source file:org.kie.workbench.common.services.backend.compiler.DefaultMavenCompilerTest.java
License:Apache License
@Test public void buildWithCloneTest() throws Exception { final String repoName = "myrepo"; final JGitFileSystem fs = (JGitFileSystem) ioService.newFileSystem(URI.create("git://" + repoName), new HashMap<String, Object>() { {//from w w w . j av a2 s .c o m put("init", Boolean.TRUE); put("internal", Boolean.TRUE); } }); ioService.startBatch(fs); ioService.write(fs.getPath("/pom.xml"), new String(java.nio.file.Files .readAllBytes(new File("src/test/projects/dummy_multimodule_untouched/pom.xml").toPath()))); ioService.write(fs.getPath("/dummyA/src/main/java/dummy/DummyA.java"), new String(java.nio.file.Files.readAllBytes(new File( "src/test/projects/dummy_multimodule_untouched/dummyA/src/main/java/dummy/DummyA.java") .toPath()))); ioService.write(fs.getPath("/dummyB/src/main/java/dummy/DummyB.java"), new String(java.nio.file.Files.readAllBytes(new File( "src/test/projects/dummy_multimodule_untouched/dummyB/src/main/java/dummy/DummyB.java") .toPath()))); ioService.write(fs.getPath("/dummyA/pom.xml"), new String(java.nio.file.Files .readAllBytes(new File("src/test/projects/dummy_multimodule_untouched/dummyA/pom.xml").toPath()))); ioService.write(fs.getPath("/dummyB/pom.xml"), new String(java.nio.file.Files .readAllBytes(new File("src/test/projects/dummy_multimodule_untouched/dummyB/pom.xml").toPath()))); ioService.endBatch(); Path tmpRootCloned = Files.createTempDirectory("cloned"); Path tmpCloned = Files.createDirectories(Paths.get(tmpRootCloned.toString(), "dummy")); final File gitClonedFolder = new File(tmpCloned.toFile(), ".clone.git"); final Git cloned = Git.cloneRepository() .setURI(fs.getGit().getRepository().getDirectory().toURI().toString()).setBare(false) .setDirectory(gitClonedFolder).call(); assertThat(cloned).isNotNull(); //Compile the repo Path prjFolder = Paths.get(gitClonedFolder + "/"); byte[] encoded = Files.readAllBytes(Paths.get(prjFolder + "/pom.xml")); String pomAsAstring = new String(encoded, StandardCharsets.UTF_8); assertThat(pomAsAstring).doesNotContain(TestConstants.TAKARI_LIFECYCLE_ARTIFACT); final AFCompiler compiler = KieMavenCompilerFactory .getCompiler(EnumSet.of(KieDecorator.ENABLE_LOGGING, KieDecorator.ENABLE_INCREMENTAL_BUILD)); WorkspaceCompilationInfo info = new WorkspaceCompilationInfo(prjFolder); CompilationRequest req = new DefaultCompilationRequest(mavenRepoPath, info, new String[] { MavenCLIArgs.COMPILE }, Boolean.TRUE); CompilationResponse res = compiler.compile(req); TestUtil.saveMavenLogIfCompilationResponseNotSuccessfull(tmpCloned, res, this.getClass(), testName); assertThat(res.isSuccessful()).isTrue(); Path incrementalConfiguration = Paths.get(prjFolder + TestConstants.TARGET_TAKARI_PLUGIN); assertThat(incrementalConfiguration.toFile()).exists(); encoded = Files.readAllBytes(Paths.get(prjFolder + "/pom.xml")); pomAsAstring = new String(encoded, StandardCharsets.UTF_8); assertThat(pomAsAstring).contains(TestConstants.KIE_TAKARI_LIFECYCLE_ARTIFACT); TestUtil.rm(tmpRootCloned.toFile()); }
From source file:org.kie.workbench.common.services.backend.compiler.DefaultMavenCompilerTest.java
License:Apache License
@Test public void buildWithPullRebaseUberfireTest() throws Exception { //Setup origin in memory final URI originRepo = URI.create("git://repo"); final JGitFileSystem origin = (JGitFileSystem) ioService.newFileSystem(originRepo, new HashMap<String, Object>() { {/*w w w .ja v a 2 s. c om*/ put("init", Boolean.TRUE); put("internal", Boolean.TRUE); put("listMode", "ALL"); } }); ioService.startBatch(origin); ioService.write(origin.getPath("/pom.xml"), new String(java.nio.file.Files .readAllBytes(new File("src/test/projects/dummy_multimodule_untouched/pom.xml").toPath()))); ioService.write(origin.getPath("/dummyA/src/main/java/dummy/DummyA.java"), new String(java.nio.file.Files.readAllBytes(new File( "src/test/projects/dummy_multimodule_untouched/dummyA/src/main/java/dummy/DummyA.java") .toPath()))); ioService.write(origin.getPath("/dummyB/src/main/java/dummy/DummyB.java"), new String(java.nio.file.Files.readAllBytes(new File( "src/test/projects/dummy_multimodule_untouched/dummyB/src/main/java/dummy/DummyB.java") .toPath()))); ioService.write(origin.getPath("/dummyA/pom.xml"), new String(java.nio.file.Files .readAllBytes(new File("src/test/projects/dummy_multimodule_untouched/dummyA/pom.xml").toPath()))); ioService.write(origin.getPath("/dummyB/pom.xml"), new String(java.nio.file.Files .readAllBytes(new File("src/test/projects/dummy_multimodule_untouched/dummyB/pom.xml").toPath()))); ioService.endBatch(); // clone into a regularfs Path tmpRootCloned = Files.createTempDirectory("cloned"); Path tmpCloned = Files.createDirectories(Paths.get(tmpRootCloned.toString(), ".clone")); final Git cloned = Git.cloneRepository() .setURI(origin.getGit().getRepository().getDirectory().toURI().toString()).setBare(false) .setDirectory(tmpCloned.toFile()).call(); assertThat(cloned).isNotNull(); PullCommand pc = cloned.pull().setRemote("origin").setRebase(Boolean.TRUE); PullResult pullRes = pc.call(); assertThat(pullRes.getRebaseResult().getStatus()).isEqualTo(RebaseResult.Status.UP_TO_DATE);// nothing changed yet RebaseCommand rb = cloned.rebase().setUpstream("origin/master"); RebaseResult rbResult = rb.setPreserveMerges(true).call(); assertThat(rbResult.getStatus().isSuccessful()).isTrue(); //Compile the repo final AFCompiler compiler = KieMavenCompilerFactory .getCompiler(EnumSet.of(KieDecorator.ENABLE_LOGGING, KieDecorator.ENABLE_INCREMENTAL_BUILD)); byte[] encoded = Files.readAllBytes(Paths.get(tmpCloned + "/pom.xml")); String pomAsAstring = new String(encoded, StandardCharsets.UTF_8); assertThat(pomAsAstring).doesNotContain(TestConstants.TAKARI_LIFECYCLE_ARTIFACT); Path prjFolder = Paths.get(tmpCloned + "/"); WorkspaceCompilationInfo info = new WorkspaceCompilationInfo(prjFolder); CompilationRequest req = new DefaultCompilationRequest(mavenRepoPath, info, new String[] { MavenCLIArgs.COMPILE }, Boolean.TRUE); CompilationResponse res = compiler.compile(req); TestUtil.saveMavenLogIfCompilationResponseNotSuccessfull(tmpCloned, res, this.getClass(), testName); assertThat(res.isSuccessful()).isTrue(); Path incrementalConfiguration = Paths.get(prjFolder + TestConstants.TARGET_TAKARI_PLUGIN); assertThat(incrementalConfiguration.toFile()).exists(); encoded = Files.readAllBytes(Paths.get(prjFolder + "/pom.xml")); pomAsAstring = new String(encoded, StandardCharsets.UTF_8); assertThat(pomAsAstring).contains(TestConstants.KIE_TAKARI_LIFECYCLE_ARTIFACT); TestUtil.rm(tmpRootCloned.toFile()); }
From source file:org.kie.workbench.common.services.backend.compiler.DefaultMavenCompilerTest.java
License:Apache License
@Test public void buildWithAllDecoratorsTest() throws Exception { final AFCompiler compiler = KieMavenCompilerFactory .getCompiler(EnumSet.of(KieDecorator.ENABLE_LOGGING, KieDecorator.UPDATE_JGIT_BEFORE_BUILD)); String MASTER_BRANCH = "master"; //Setup origin in memory final URI originRepo = URI.create("git://repo"); final JGitFileSystem origin = (JGitFileSystem) ioService.newFileSystem(originRepo, new HashMap<String, Object>() { {/*from ww w.j a va2 s . co m*/ put("init", Boolean.TRUE); put("internal", Boolean.TRUE); put("listMode", "ALL"); } }); assertThat(origin).isNotNull(); ioService.startBatch(origin); ioService.write(origin.getPath("/pom.xml"), new String(java.nio.file.Files .readAllBytes(new File("target/test-classes/kjar-2-single-resources/pom.xml").toPath()))); ioService.write(origin.getPath("/src/main/java/org/kie/maven/plugin/test/Person.java"), new String(java.nio.file.Files.readAllBytes(new File( "target/test-classes/kjar-2-single-resources/src/main/java/org/kie/maven/plugin/test/Person.java") .toPath()))); ioService.write(origin.getPath("/src/main/resources/AllResourceTypes/simple-rules.drl"), new String(java.nio.file.Files.readAllBytes(new File( "target/test-classes/kjar-2-single-resources/src/main/resources/AllResourceTypes/simple-rules.drl") .toPath()))); ioService.write(origin.getPath("/src/main/resources/META-INF/kmodule.xml"), new String(java.nio.file.Files.readAllBytes(new File( "target/test-classes/kjar-2-single-resources/src/main/resources/META-INF/kmodule.xml") .toPath()))); ioService.endBatch(); RevCommit lastCommit = origin.getGit() .resolveRevCommit(origin.getGit().getRef(MASTER_BRANCH).getObjectId()); assertThat(lastCommit).isNotNull(); // clone into a regularfs Path tmpRootCloned = Files.createTempDirectory("cloned"); Path tmpCloned = Files.createDirectories(Paths.get(tmpRootCloned.toString(), ".clone.git")); final Git cloned = Git.cloneRepository() .setURI(origin.getGit().getRepository().getDirectory().toURI().toString()).setBare(false) .setDirectory(tmpCloned.toFile()).call(); assertThat(cloned).isNotNull(); WorkspaceCompilationInfo info = new WorkspaceCompilationInfo(Paths.get(tmpCloned + "/")); CompilationRequest req = new DefaultCompilationRequest(mavenRepoPath, info, new String[] { MavenCLIArgs.COMPILE, MavenCLIArgs.ALTERNATE_USER_SETTINGS + TestUtilMaven.getSettingsFile() }, Boolean.TRUE); CompilationResponse res = compiler.compile(req); TestUtil.saveMavenLogIfCompilationResponseNotSuccessfull(tmpCloned, res, this.getClass(), testName); assertThat(res.isSuccessful()).isTrue(); lastCommit = origin.getGit().resolveRevCommit(origin.getGit().getRef(MASTER_BRANCH).getObjectId()); assertThat(lastCommit).isNotNull(); //change one file and commit on the origin repo ioService.write(origin.getPath("/src/main/java/org/kie/maven/plugin/test/Person.java"), new String(java.nio.file.Files.readAllBytes(new File("src/test/projects/Person.java").toPath()))); RevCommit commitBefore = origin.getGit() .resolveRevCommit(origin.getGit().getRef(MASTER_BRANCH).getObjectId()); assertThat(commitBefore).isNotNull(); assertThat(lastCommit.getId().toString()).isNotEqualTo(commitBefore.getId().toString()); //recompile res = compiler.compile(req); TestUtil.saveMavenLogIfCompilationResponseNotSuccessfull(tmpCloned, res, this.getClass(), testName); assertThat(res.isSuccessful()).isTrue(); TestUtil.rm(tmpRootCloned.toFile()); }
From source file:org.kie.workbench.common.services.backend.compiler.impl.JGitUtils.java
License:Apache License
public static Git tempClone(final JGitFileSystem fs, final String uuid) { try {/*from w w w . j ava 2 s . co m*/ return Git.cloneRepository().setURI(fs.getGit().getRepository().getDirectory().toURI().toString()) .setDirectory(new File(TEMP + uuid, fs.getGit().getRepository().getDirectory().getName().replaceFirst("\\.git", ""))) .setBare(false).setCloneAllBranches(true).call(); } catch (GitAPIException e) { throw new RuntimeException(e); } }