首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Java API从GitHub获取所有提交

使用Java API从GitHub获取所有提交
EN

Stack Overflow用户
提问于 2016-07-31 16:55:17
回答 2查看 2.6K关注 0票数 5

我想使用Java API从GitHub获得所有提交。到目前为止,我成功地创建了以下简单的代码:

代码语言:javascript
复制
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());
        }
    }
}

如何才能将此帐户的所有提交都提交到存储库?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-31 17:20:55

使用您正在使用的Eclipse GitHub Java API,类CommitService提供了对存储库提交的访问。可以调用getCommits(repository)方法来检索给定存储库的所有提交的列表。

打印存储库所有提交的示例代码:

代码语言:javascript
复制
CommitService commitService = new CommitService(client);
for (RepositoryCommit commit : commitService.getCommits(repository)) {
    System.out.println(commit.getCommit().getMessage());
}
票数 4
EN

Stack Overflow用户

发布于 2016-07-31 17:12:14

对于给定的存储库,您可以使用JGit git.log() function (LogCommand):

代码语言:javascript
复制
public static void main(String[] args) throws IOException, InvalidRefNameException, GitAPIException {
    try (Repository repository = CookbookHelper.openJGitCookbookRepository()) {
        try (Git git = new Git(repository)) {
            Iterable<RevCommit> commits = git.log().all().call();
            int count = 0;
            for (RevCommit commit : commits) {
                System.out.println("LogCommit: " + commit);
                count++;
            }
            System.out.println(count);
        }
    }
}

根据您的Eclipse版本,您可能需要jgit-core maven dependency

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit -->
<dependency>
    <groupId>org.eclipse.jgit</groupId>
    <artifactId>org.eclipse.jgit</artifactId>
    <version>4.4.1.201607150455-r</version>
</dependency>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38682358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档