Example usage for org.eclipse.jgit.api Git cloneRepository

List of usage examples for org.eclipse.jgit.api Git cloneRepository

Introduction

In this page you can find the example usage for org.eclipse.jgit.api Git cloneRepository.

Prototype

public static CloneCommand cloneRepository() 

Source Link

Document

Return a command object to execute a clone command

Usage

From source file:ch.sbb.releasetrain.git.GitRepoImpl.java

License:Apache License

private Git gitClone() throws GitAPIException {
    return Git.cloneRepository().setURI(url).setCredentialsProvider(credentialsProvider()).setDirectory(gitDir)
            .call();
}

From source file:com.barchart.jenkins.cascade.PluginScmGit.java

License:BSD License

/**
 * Destroy workspace and clone from scratch.
 *//*from   w  w w .j a v a2s .  c o m*/
public static Git doClone(final File workspace, final String uri, final String remote) {
    try {
        FileUtils.delete(workspace, FileUtils.RECURSIVE | FileUtils.IGNORE_ERRORS);
        FileUtils.mkdirs(workspace, true);
        return Git.cloneRepository().setURI(uri).setRemote(remote).setNoCheckout(true).setDirectory(workspace)
                .call();
    } catch (final Throwable e) {
        throw new RuntimeException(e);
    }
}

From source file:com.bb.extensions.plugin.unittests.internal.git.GitWrapper.java

License:Open Source License

/**
 * Clones the git repository located at the given url to the given path.
 * /*from  ww w . ja  v a  2s. com*/
 * @param path
 * 
 * @param url
 * @return The GitWrapper to interact with the clone git repository.
 * @throws IllegalArgumentException
 */
public static GitWrapper cloneRepository(String path, String url) throws IllegalArgumentException {
    FileRepositoryBuilder builder = new FileRepositoryBuilder();
    File gitDir = new File(path);
    if (gitDir.exists() == false) {
        gitDir.mkdir();
    } else if (gitDir.list().length > 0) {
        if (isGitRepository(gitDir)) {
            return openRepository(path);
        } else {
            throw new IllegalArgumentException("Cannot clone to a non-empty directory");
        }
    }
    Repository repository;
    try {
        repository = builder.setGitDir(gitDir).readEnvironment().findGitDir().build();
        GitWrapper gitWrapper = new GitWrapper();
        gitWrapper.git = new Git(repository);
        CloneCommand clone = Git.cloneRepository();
        clone.setBare(false);
        clone.setCloneAllBranches(true);
        clone.setDirectory(gitDir).setURI(url);
        // we have to close the newly returned Git object as call() creates
        // a new one every time
        clone.call().getRepository().close();
        return gitWrapper;
    } catch (IOException e) {
        e.printStackTrace();
    } catch (InvalidRemoteException e) {
        e.printStackTrace();
    } catch (TransportException e) {
        e.printStackTrace();
    } catch (GitAPIException e) {
        e.printStackTrace();
    }

    return null;
}

From source file:com.buildautomation.jgit.api.CloneRemoteRepositoryWithAuthentication.java

License:Apache License

public static void cloneRemoteRepositoryWithAuthentication()
        throws IOException, InvalidRemoteException, TransportException, GitAPIException {
    // this is necessary when the remote host does not have a valid certificate, ideally we would install the certificate in the JVM
    // instead of this unsecure workaround!

    // PROXY/* w  w w  .  j  ava 2  s.c  o  m*/
    System.setProperty("http.proxyHost", "10.245.90.37");
    System.setProperty("http.proxyPort", "6050");

    // PROXY
    System.setProperty("https.proxyHost", "10.245.90.37");
    System.setProperty("https.proxyPort", "6050");

    CredentialsProvider allowHosts = new CredentialsProvider() {

        @Override
        public boolean supports(CredentialItem... items) {
            for (CredentialItem item : items) {
                if ((item instanceof CredentialItem.YesNoType)) {
                    return true;
                }
            }
            return false;
        }

        @Override
        public boolean get(URIish uri, CredentialItem... items) throws UnsupportedCredentialItem {
            for (CredentialItem item : items) {
                if (item instanceof CredentialItem.YesNoType) {
                    ((CredentialItem.YesNoType) item).setValue(true);
                    return true;
                }
            }
            return false;
        }

        @Override
        public boolean isInteractive() {
            return false;
        }
    };

    // prepare a new folder for the cloned repository
    File localPath = File.createTempFile("TestGitRepository", "");
    localPath.delete();

    // then clone
    System.out.println("Cloning from " + REMOTE_URL + " to " + localPath);
    try (Git result = Git.cloneRepository().setURI(REMOTE_URL).setDirectory(localPath)
            .setCredentialsProvider(allowHosts).call()) {
        // Note: the call() returns an opened repository already which needs to be closed to avoid file handle leaks!
        System.out.println("Having repository: " + result.getRepository().getDirectory());
    }
}

From source file:com.buildautomation.jgit.api.FetchRemoteCommitsWithPrune.java

License:Apache License

public static void fetchRemoteCommitsWithPrune() throws IOException, GitAPIException {
    // prepare a new folder for the cloned repository
    File localPath = File.createTempFile("TestGitRepository", "");
    localPath.delete();/*from   w ww . j  ava  2  s. c o  m*/

    // then clone
    System.out.println("Cloning from " + REMOTE_URL + " to " + localPath);
    try (Git git = Git.cloneRepository().setURI(REMOTE_URL).setDirectory(localPath).call()) {
        // Note: the call() returns an opened repository already which needs to be closed to avoid file handle leaks!
        System.out.println("Having repository: " + git.getRepository().getDirectory());

        System.out.println("Starting fetch");
        FetchResult result = git.fetch().setCheckFetchedObjects(true).call();
        System.out.println("Messages: " + result.getMessages());

        // ensure master/HEAD are still there
        System.out.println("Listing local branches:");
        List<Ref> call = git.branchList().call();
        for (Ref ref : call) {
            System.out.println("Branch: " + ref + " " + ref.getName() + " " + ref.getObjectId().getName());
        }

        System.out.println("Now including remote branches:");
        call = git.branchList().setListMode(ListMode.ALL).call();
        for (Ref ref : call) {
            System.out.println("Branch: " + ref + " " + ref.getName() + " " + ref.getObjectId().getName());
        }
    }
}

From source file:com.centurylink.mdw.dataaccess.file.VersionControlGit.java

License:Apache License

public void cloneRepo(String branch) throws Exception {
    CloneCommand cloneCommand = Git.cloneRepository().setURI(repositoryUrl)
            .setDirectory(localRepo.getDirectory().getParentFile());
    if (branch != null)
        cloneCommand.setBranch(branch);//from  w w  w .  j a va  2s  . c  o m
    if (credentialsProvider != null)
        cloneCommand.setCredentialsProvider(credentialsProvider);
    cloneCommand.call();
}

From source file:com.centurylink.mdw.dataaccess.file.VersionControlGit.java

License:Apache License

/**
 * In lieu of sparse checkout since it's not yet supported in JGit:
 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=383772
 *//*from w ww  . ja  v a 2  s .com*/
public void cloneNoCheckout(boolean withProgress) throws Exception {
    CloneCommand clone = Git.cloneRepository().setURI(repositoryUrl)
            .setDirectory(localRepo.getDirectory().getParentFile()).setNoCheckout(true);
    // https://bugs.eclipse.org/bugs/show_bug.cgi?id=442029
    if (credentialsProvider != null)
        clone.setCredentialsProvider(credentialsProvider);
    if (withProgress)
        clone.setProgressMonitor(new TextProgressMonitor(new PrintWriter(System.out)));
    clone.call();
}

From source file:com.centurylink.mdw.plugin.project.assembly.ProjectInflator.java

License:Apache License

public void inflateCloudProject(final IRunnableContext container) {
    getProject().setCloudProject(true);/*from  w  ww.  jav  a2s .  c o  m*/

    // get a project handle
    final IProject newProjectHandle = ResourcesPlugin.getWorkspace().getRoot()
            .getProject(workflowProject.getName());

    // get a project descriptor
    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    final IProjectDescription description = workspace.newProjectDescription(newProjectHandle.getName());

    // create the new project operation
    IRunnableWithProgress op = new IRunnableWithProgress() {
        public void run(IProgressMonitor monitor) throws InvocationTargetException {
            Repository newRepo = null;
            try {
                if (workflowProject.getPersistType() == PersistType.Git) {
                    File localDir = new File(ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile()
                            + "/" + workflowProject.getName());
                    if (workflowProject.getMdwVcsRepository().hasRemoteRepository()) {
                        monitor.subTask("Cloning Git repository");
                        VcsRepository gitRepo = workflowProject.getMdwVcsRepository();
                        Git.cloneRepository().setURI(gitRepo.getRepositoryUrlWithCredentials())
                                .setDirectory(localDir).call();
                    } else {
                        newRepo = new FileRepository(new File(localDir + "/.git"));
                        newRepo.create();
                    }

                    // .gitignore
                    Generator generator = new Generator(shell);
                    JetAccess jet = getJet("source/.ignorejet", getProject().getSourceProject(), ".gitignore",
                            null);
                    generator.createFile(jet, monitor);
                }

                CreateProjectOperation op = new CreateProjectOperation(description, "MDW Cloud Project");
                PlatformUI.getWorkbench().getOperationSupport().getOperationHistory().execute(op, monitor,
                        WorkspaceUndoUtil.getUIInfoAdapter(shell));
            } catch (Exception ex) {
                throw new InvocationTargetException(ex);
            } finally {
                if (newRepo != null)
                    newRepo.close();
            }
        }
    };

    // run the new project creation operation
    try {
        container.run(false, false, op);
        ProgressMonitorDialog pmDialog = new MdwProgressMonitorDialog(MdwPlugin.getShell());
        pmDialog.run(true, false, new IRunnableWithProgress() {
            public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
                monitor.beginTask("Inflating Workflow Project", 250);
                monitor.worked(5);
                // configure as Java project
                ProjectConfigurator projConf = new ProjectConfigurator(getProject(), MdwPlugin.getSettings());
                projConf.setJava(new SubProgressMonitor(monitor, 3));

                ProjectUpdater updater = new ProjectUpdater(getProject(), MdwPlugin.getSettings());
                updater.updateMappingFiles(new SubProgressMonitor(monitor, 3)); // bootstrap
                                                                                // versions
                                                                                // of
                                                                                // the
                                                                                // property
                                                                                // files
                updater.updateFrameworkJars(new SubProgressMonitor(monitor, 150));
                updater.updateWebProjectJars(new SubProgressMonitor(monitor, 50));

                try {
                    if (getProject().isOsgi())
                        projConf.addJavaProjectSourceFolder(getProject().getOsgiSettings().getSourceDir(),
                                new SubProgressMonitor(monitor, 3));
                    else if (!getProject().isWar())
                        projConf.addJavaProjectSourceFolder("src", monitor);
                    projConf.setJavaBuildOutputPath("build/classes", new SubProgressMonitor(monitor, 5));
                    projConf.addFrameworkJarsToClasspath(monitor);

                    // add the workflow facet
                    getProject().setSkipFacetPostInstallUpdates(true); // already
                                                                       // did
                                                                       // framework
                                                                       // updates
                    IFacetedProject facetedProject = ProjectFacetsManager
                            .create(getProject().getSourceProject(), true, new SubProgressMonitor(monitor, 3));
                    IProjectFacetVersion javaFacetVersion = ProjectFacetsManager.getProjectFacet("java")
                            .getDefaultVersion();
                    if (Float.parseFloat(javaFacetVersion.getVersionString()) < 1.6)
                        javaFacetVersion = ProjectFacetsManager.getProjectFacet("java").getVersion("1.6");
                    if (workflowProject.isCloudOnly())
                        javaFacetVersion = ProjectFacetsManager.getProjectFacet("java").getVersion("1.7");
                    facetedProject.installProjectFacet(javaFacetVersion, null,
                            new SubProgressMonitor(monitor, 3));
                    IProjectFacetVersion mdwFacet = ProjectFacetsManager.getProjectFacet("mdw.workflow")
                            .getDefaultVersion();
                    facetedProject.installProjectFacet(mdwFacet, getProject(),
                            new SubProgressMonitor(monitor, 3));
                    if (workflowProject.isOsgi()) {
                        IProjectFacet utilFacet = ProjectFacetsManager.getProjectFacet("jst.utility");
                        IProjectFacetVersion facetVer = utilFacet.getDefaultVersion();
                        IActionDefinition def = facetVer.getActionDefinition(null,
                                IFacetedProject.Action.Type.INSTALL);
                        Object cfg = def.createConfigObject();
                        facetedProject.installProjectFacet(
                                ProjectFacetsManager.getProjectFacet("jst.utility").getDefaultVersion(), cfg,
                                new SubProgressMonitor(monitor, 3));
                    } else if (workflowProject.isWar()) {
                        // add the facet to the xml file
                        IFile facetsFile = workflowProject.getSourceProject()
                                .getFile(".settings/org.eclipse.wst.common.project.facet.core.xml");
                        if (facetsFile.exists()) {
                            String content = new String(PluginUtil.readFile(facetsFile));
                            int insert = content.indexOf("</faceted-project>");
                            content = content.substring(0, insert)
                                    + "  <installed facet=\"jst.web\" version=\"3.0\"/>\n"
                                    + content.substring(insert);
                            PluginUtil.writeFile(facetsFile, content, new SubProgressMonitor(monitor, 3));
                        }
                    }

                    final ProjectConfigurator configurator = new ProjectConfigurator(getProject(),
                            MdwPlugin.getSettings());
                    if (!workflowProject.isOsgi() && !workflowProject.isWar()) {
                        MdwPlugin.getDisplay().syncExec(new Runnable() {
                            public void run() {
                                try {
                                    configurator.createFrameworkSourceCodeAssociations(MdwPlugin.getShell(),
                                            new NullProgressMonitor());
                                } catch (CoreException ex) {
                                    PluginMessages.log(ex);
                                }
                            }
                        });
                    }

                    if (workflowProject.isOsgi()) {
                        generateOsgiArtifacts(new SubProgressMonitor(monitor, 10));
                        configurator.configureOsgiProject(shell, new SubProgressMonitor(monitor, 5));
                    } else if (workflowProject.isWar()) {
                        generateWarCloudArtifacts(new SubProgressMonitor(monitor, 10));
                        configurator.addMavenNature(new SubProgressMonitor(monitor, 5)); // force
                                                                                         // maven
                                                                                         // refresh
                    }
                } catch (Exception ex) {
                    throw new InvocationTargetException(ex);
                }
            }
        });
    } catch (Exception ex) {
        PluginMessages.uiError(ex, "Create Cloud Project", workflowProject);
    }
}

From source file:com.chungkwong.jgitgui.Main.java

License:Open Source License

private void gitClone() {
    File dir = dirChooser.showDialog(null);
    if (dir != null) {
        TextInputDialog urlDialog = new TextInputDialog();
        urlDialog.setTitle(java.util.ResourceBundle.getBundle("com/chungkwong/jgitgui/text")
                .getString("CHOOSE A REPOSITORY TO CLONE"));
        urlDialog.setHeaderText(//from www . j  a v a2s . c  om
                java.util.ResourceBundle.getBundle("com/chungkwong/jgitgui/text").getString("ENTER THE URL:"));
        Optional<String> url = urlDialog.showAndWait();
        if (url.isPresent()) {
            ProgressDialog progressDialog = new ProgressDialog(
                    java.util.ResourceBundle.getBundle("com/chungkwong/jgitgui/text").getString("CLONE"));
            new Thread(() -> {
                try {
                    Git repository = Git.cloneRepository().setDirectory(dir).setURI(url.get())
                            .setProgressMonitor(progressDialog).call();
                    Platform.runLater(() -> {
                        navigationRoot.getChildren().add(new GitTreeItem(repository));
                    });
                } catch (Exception ex) {
                    Logger.getLogger(GitTreeItem.class.getName()).log(Level.SEVERE, null, ex);
                    Platform.runLater(() -> {
                        progressDialog.hide();
                        Util.informUser(ex);
                    });
                }
            }).start();

        }
    }
}

From source file:com.codeabovelab.dm.cluman.configs.container.ConfigsFetcherGit.java

License:Apache License

private Git initGitRepo() {
    try {//from  w ww . j  av a2  s  .  c o m
        log.info("try to init repo {}", gitSettings.getUrl());
        File gitDir = gitDirPath.toFile();
        FileUtils.deleteQuietly(gitDir);
        gitDir.mkdirs();

        Git git = Git.cloneRepository().setURI(gitSettings.getUrl()).setCredentialsProvider(cp)
                .setDirectory(gitDir).setBranchesToClone(singleton(HEAD + gitSettings.getBranch()))
                .setBranch(HEAD + gitSettings.getBranch()).call();
        log.info("repo was cloned from url: {} to dir: {}, branch: {} ", gitSettings.getUrl(), gitDir,
                git.getRepository().getBranch());
        return git;
    } catch (Exception e) {
        throw Throwables.asRuntime(e);
    }
}