Peter Penzov Peter Penzov - 1 year ago 87
Java Question

Get all commits from GitHub using Java API

I want to get all commits from GitHub using Java API. So far I managed to create this simple code:

import java.io.IOException;
import java.util.List;
import org.eclipse.egit.github.core.Repository;
import org.eclipse.egit.github.core.client.GitHubClient;
import org.eclipse.egit.github.core.service.RepositoryService;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class GithubImplTest
{
public void testSomeMethod() throws IOException
{
GitHubClient client = new GitHubClient();
client.setCredentials("sonratestw@gmail.com", "sono");

RepositoryService service = new RepositoryService(client);

List<Repository> repositories = service.getRepositories();

for (int i = 0; i < repositories.size(); i++)
{
Repository get = repositories.get(i);
System.out.println("Repository Name: " + get.getName());
}
}
}


How I can get all commits into the repository from this account?

Answer Source

With the Eclipse GitHub Java API you are using, the class CommitService provides access to repository commits. The method getCommits(repository) can be invoked to retrieve the list of all commits for the given repository.

Sample code to print all commits of a repository:

CommitService commitService = new CommitService(client);
for (RepositoryCommit commit : commitService.getCommits(repository)) {
    System.out.println(commit.getCommit().getMessage());
}