Example usage for org.eclipse.jgit.transport Transport open

List of usage examples for org.eclipse.jgit.transport Transport open

Introduction

In this page you can find the example usage for org.eclipse.jgit.transport Transport open.

Prototype

public static Transport open(Repository local, URIish uri) throws NotSupportedException, TransportException 

Source Link

Document

Open a new transport instance to connect two repositories.

Usage

From source file:com.gmail.cjbooms.thesis.pythonappengine.server.git.GitCommandsServiceImpl.java

License:Open Source License

/**
 * Push Changes to a Remote Repository//from  ww  w . j a  v  a 2s  . c  o m
 *
 * @param pathToLocalRepository Root Location Of Repository or Project
 * @param remoteRepoURL The URL of the Remote Repository to push to
 * @param userName The remote login user name
 * @param password The remote login password
 * @throws IOException, GitAPIException, URISyntaxException
 */
public void pushLocalCommitsToRemoteRepository(String pathToLocalRepository, String remoteRepoURL,
        String userName, String password) throws IOException {

    File repositoryDirectory = new File(pathToLocalRepository);
    Git localGitRepositoryRef = Git.open(repositoryDirectory);
    Repository localRepository = localGitRepositoryRef.getRepository();

    URIish remoteURI = null;
    try {
        remoteURI = new URIish(remoteRepoURL);
    } catch (URISyntaxException e) {
        throw new RuntimeException(e.getMessage());
    }
    Transport t = Transport.open(localRepository, remoteURI);
    ((TransportHttp) t).setUseSmartHttp(true);
    RemoteRefUpdate remoteRefUpdate = new RemoteRefUpdate(localRepository, localRepository.getRef("master"),
            "refs/heads/master", true, "refs/heads/master", null);
    t.setCredentialsProvider(new UsernamePasswordCredentialsProvider(userName, password));
    t.push(NullProgressMonitor.INSTANCE, Collections.singleton(remoteRefUpdate));

}

From source file:com.gmail.cjbooms.thesis.pythonappengine.server.git.GitCommandsServiceImpl.java

License:Open Source License

/**
 * Pull changes from Remote Repository//from   www .j  a  v a2 s.  c o m
 *
 * @param pathToLocalRepository Root Location Of Repository or Project
 * @param remoteRepoURL The URL of the Remote Repository to push to
 * @param userName The remote login user name
 * @param password The remote login password
 * @throws IOException, GitAPIException, URISyntaxException
 */
public void pullChangesFromRemoteRepository(String pathToLocalRepository, String remoteRepoURL, String userName,
        String password) throws IOException {

    File repositoryDirectory = new File(pathToLocalRepository);
    Git localGitRepositoryRef = Git.open(repositoryDirectory);
    Repository localRepository = localGitRepositoryRef.getRepository();

    URIish remoteURI = null;
    try {
        remoteURI = new URIish(remoteRepoURL);
    } catch (URISyntaxException e) {
        throw new RuntimeException(e.getMessage());
    }
    Transport t = Transport.open(localRepository, remoteURI);
    ((TransportHttp) t).setUseSmartHttp(true);
    t.setCredentialsProvider(new UsernamePasswordCredentialsProvider(userName, password));
    RefSpec refSpec = new RefSpec("+refs/heads/*:refs/heads/*");

    t.fetch(NullProgressMonitor.INSTANCE, Collections.singleton(refSpec));

}

From source file:com.google.gerrit.server.git.PushOp.java

License:Apache License

private void runImpl() throws IOException {
    final Transport tn = Transport.open(db, uri);
    final PushResult res;
    try {//  www  . j a  v  a  2 s  . c  om
        res = pushVia(tn);
    } finally {
        try {
            tn.close();
        } catch (Throwable e2) {
            log.warn("Unexpected error while closing " + uri, e2);
        }
    }

    for (final RemoteRefUpdate u : res.getRemoteUpdates()) {
        switch (u.getStatus()) {
        case OK:
        case UP_TO_DATE:
        case NON_EXISTING:
            break;

        case NOT_ATTEMPTED:
        case AWAITING_REPORT:
        case REJECTED_NODELETE:
        case REJECTED_NONFASTFORWARD:
        case REJECTED_REMOTE_CHANGED:
            log.error("Failed replicate of " + u.getRemoteName() + " to " + uri + ": status "
                    + u.getStatus().name());
            break;

        case REJECTED_OTHER_REASON:
            if ("non-fast-forward".equals(u.getMessage())) {
                log.error("Failed replicate of " + u.getRemoteName() + " to " + uri
                        + ", remote rejected non-fast-forward push."
                        + "  Check receive.denyNonFastForwards variable in config file"
                        + " of destination repository.");
            } else {
                log.error("Failed replicate of " + u.getRemoteName() + " to " + uri + ", reason: "
                        + u.getMessage());
            }
            break;
        }
    }
}

From source file:com.googlesource.gerrit.plugins.replication.PushOne.java

License:Apache License

private void runImpl() throws IOException {
    PushResult res;/*from ww  w . ja  v  a2 s.c o m*/
    try (Transport tn = Transport.open(git, uri)) {
        res = pushVia(tn);
    }
    updateStates(res.getRemoteUpdates());
}

From source file:com.madgag.agit.git.TransportFactory.java

License:Open Source License

public Transport transportFor(RemoteConfig remoteConfig) {
    Transport tn;//w w w .  j a va 2  s. c om
    try {
        Log.i(TAG, "Creating transport for repo with " + identityHashCode(repo));
        tn = Transport.open(repo, remoteConfig);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    if (tn instanceof SshTransport) {
        ((SshTransport) tn).setSshSessionFactory(sshSessionFactoryProvider.get());
    }
    return tn;
}

From source file:jetbrains.buildServer.buildTriggers.vcs.git.TransportFactoryImpl.java

License:Apache License

public Transport createTransport(@NotNull final Repository r, @NotNull final URIish url,
        @NotNull final AuthSettings authSettings, final int timeoutSeconds)
        throws NotSupportedException, VcsException {
    try {//from w  ww. jav  a 2  s .c  o  m
        checkUrl(url);
        URIish preparedURI = prepareURI(url);
        final Transport t = Transport.open(r, preparedURI);
        t.setCredentialsProvider(authSettings.toCredentialsProvider());
        if (t instanceof SshTransport) {
            SshTransport ssh = (SshTransport) t;
            ssh.setSshSessionFactory(getSshSessionFactory(authSettings, url));
        }
        t.setTimeout(timeoutSeconds);
        return t;
    } catch (TransportException e) {
        throw new VcsException("Cannot create transport", e);
    }
}

From source file:net.erdfelt.android.sdkfido.git.internal.GitCloneCommand.java

License:Apache License

/**
 * Fetch only specific refs from the remoteName.
 * /*from w  w w  .  j  av a2 s  .c o  m*/
 * @param remoteName
 *            the remote name to fetch from
 * @param refs
 *            the specific refs to fetch, or null for all refs
 * @return the results of the fetch
 * @throws URISyntaxException
 *             if unable to process the URL for the remote name
 * @throws IOException
 *             if unable to fetch
 */
private FetchResult fetch(String remoteName, Collection<RefSpec> refs) throws URISyntaxException, IOException {
    if (refs == null) {
        LOG.info("fetch: remote:" + remoteName + " - refs:<all>");
    } else {
        LOG.info("fetch: remote:" + remoteName + " - refs:" + refs);
    }
    Transport tx = Transport.open(repo, remoteName);
    FetchResult result = null;

    try {
        result = tx.fetch(getProgressMonitor(), refs);
    } finally {
        tx.close();
    }

    GitInfo.infoFetchResults(repo, result);
    return result;
}

From source file:org.commonjava.gitwrap.BareGitRepository.java

License:Open Source License

public BareGitRepository fetch(final String remoteName) throws GitWrapException {
    Transport transport = null;//from   ww  w .j a  v a  2s.  c  o m
    try {
        final RemoteConfig remoteConfig = new RemoteConfig(repository.getConfig(), remoteName);
        if (remoteConfig.getURIs() == null || remoteConfig.getURIs().isEmpty()) {
            throw new GitWrapException("Remote: %s has no associated URLs.", remoteName);
        }

        if (remoteConfig.getFetchRefSpecs() == null || remoteConfig.getFetchRefSpecs().isEmpty()) {
            throw new GitWrapException("Remote: %s has no associated fetch ref-specs.", remoteName);
        }

        transport = Transport.open(repository, remoteConfig);
        latestFetch = transport.fetch(MONITOR, null);
    } catch (final URISyntaxException e) {
        throw new GitWrapException("Cannot read configuration for remote: %s. Reason: %s", e, remoteName,
                e.getMessage());
    } catch (final NotSupportedException e) {
        throw new GitWrapException("Transport not supported for remote: %s. Error was: %s", e, remoteName,
                e.getMessage());
    } catch (final TransportException e) {
        throw new GitWrapException("Transport error while fetching remote: %s. Error was: %s", e, remoteName,
                e.getMessage());
    } finally {
        if (transport != null) {
            transport.close();
        }
    }

    return this;
}

From source file:org.commonjava.gitwrap.BareGitRepository.java

License:Open Source License

public BareGitRepository push(final String name) throws GitWrapException {
    try {//from w  w  w .  j av a 2s. c om
        final StoredConfig config = repository.getConfig();
        final RemoteConfig remote = new RemoteConfig(config, name);

        final List<URIish> pushURIs = remote.getPushURIs();
        final List<RefSpec> pushRefSpecs = remote.getPushRefSpecs();

        final Collection<RemoteRefUpdate> remoteRefUpdates = Transport.findRemoteRefUpdatesFor(repository,
                pushRefSpecs, null);

        for (final URIish uri : pushURIs) {
            final Collection<RemoteRefUpdate> updates = new ArrayList<RemoteRefUpdate>();
            for (final RemoteRefUpdate rru : remoteRefUpdates) {
                updates.add(new RemoteRefUpdate(rru, null));
            }

            Transport transport = null;
            try {
                transport = Transport.open(repository, uri);
                transport.applyConfig(remote);
                final PushResult result = transport.push(MONITOR, updates);

                if (result.getMessages().length() > 0 && LOGGER.isDebugEnabled()) {
                    LOGGER.debug(result.getMessages());
                }
            } finally {
                if (transport != null) {
                    transport.close();
                }
            }
        }
    } catch (final NotSupportedException e) {
        throw new GitWrapException(
                "Cannot push to repository: %s. Transport is not supported.\nNested error: %s", e, name,
                e.getMessage());
    } catch (final TransportException e) {
        throw new GitWrapException("Transport failed for repository push: %s.\nNested error: %s", e, name,
                e.getMessage());
    } catch (final URISyntaxException e) {
        throw new GitWrapException("Invalid URI for repository push: %s.\nNested error: %s", e, name,
                e.getMessage());
    } catch (final IOException e) {
        throw new GitWrapException("Transport failed for repository push: %s.\nNested error: %s", e, name,
                e.getMessage());
    }

    return this;
}

From source file:org.eclipse.egit.core.op.CloneOperation.java

License:Open Source License

private void doFetch(final IProgressMonitor monitor) throws NotSupportedException, TransportException {
    final Transport tn = Transport.open(local, remoteConfig);
    if (credentialsProvider != null)
        tn.setCredentialsProvider(credentialsProvider);
    tn.setTimeout(this.timeout);
    try {/*  w  w  w  . java 2 s  . c om*/
        final EclipseGitProgressTransformer pm;
        pm = new EclipseGitProgressTransformer(monitor);
        fetchResult = tn.fetch(pm, null);
    } finally {
        tn.close();
    }
}