Abdullah Akbar
Abdullah Akbar

Reputation: 55

JGit: How to fix NoRemoteRepositoryException while creating Git Repository and pushing it to GitHub?

Using JGit, I want to create a NEW repository and push it to GitHub. I am getting NoRemoteRepositoryException. Please help. What am I missing in my code?

private void createNewRepository(Task task, String path) {
  File directory = new File(path);
  try {
    Git git = Git.init().setDirectory(directory).call();
    git.add().addFilepattern( "readme.txt" ).call();
    git.commit().setMessage( "Create readme file" ).call();

    RemoteAddCommand remoteAddCommand = git.remoteAdd();
    remoteAddCommand.setName("origin");
    remoteAddCommand.setUri(new URIish(task.getVcUrl()));
    remoteAddCommand.call();

    CredentialsProvider credentialsProvider = new UsernamePasswordCredentialsProvider(task.getVcUsername(), task.getVcPassword());   
     git.push().setCredentialsProvider(credentialsProvider).
        setRemote("origin").setPushAll().setForce(true).call();
  } catch (GitAPIException ex) {
    logger.warn(ex.getLocalizedMessage(), ex);
    taskLogger.get().append(ex.getLocalizedMessage()).append("\n");
  } catch (URISyntaxException e) {
    e.printStackTrace();
  }
}

The error stacktrace is

Caused by: org.eclipse.jgit.errors.NoRemoteRepositoryException: 
    http://github.com/AAA/Orgtest_sd3: 
    https://github.com/AAA/Orgtest_sd3/info/refs?service=git-receive-pack not 
found
    at 
org.eclipse.jgit.transport.TransportHttp.connect(TransportHttp.java:520)
    at 
org.eclipse.jgit.transport.TransportHttp.openPush(TransportHttp.java:440)
    at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:160)
    at org.eclipse.jgit.transport.Transport.push(Transport.java:1344)
    at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:169)

Upvotes: 4

Views: 5613

Answers (1)

Rüdiger Herrmann
Rüdiger Herrmann

Reputation: 20985

You cannot create a new remote repository from your local host, neither with JGit nor with native Git.

You'll have to first create a repository on the remote host, then you can clone, fetch, and push from/to this repository.

Upvotes: 1

Related Questions