【问题标题】:How to get more than 100 results when searching for repositories with the Java GitHub API?使用 Java GitHub API 搜索存储库时如何获得超过 100 个结果?
【发布时间】:2014-02-25 18:20:59
【问题描述】:

我目前正在使用 org.eclipse.egit.github.core-2.1.5 GitHub API for Java,目标是使用 Python 搜索 GitHub 上的所有存储库。

我知道如何进行搜索,但 RepositoryService.searchRepositories(query) 方法只返回 100 个结果。如果我重做搜索,则会返回相同的结果。有什么办法可以得到下一个 101-X 的搜索结果?

有没有办法在 Java GitHub API 中使用功能类似于 curl https://api.github.com/legacy/repos/search/Go?language=Go 的命令?如果是这样,什么方法可以提供此功能?

【问题讨论】:

    标签: java github github-api


    【解决方案1】:

    the code来看,searchRepositories有几个重载变体,其中一个接受query参数、language参数和startPage参数。这意味着您应该能够使用以下命令运行您指定的查询:

    RepositoryService.searchRepositories("Go", "go")
    

    如果您想获得更多结果,也可以指定页面:

    RepositoryService.searchRepositories("Go", "go", 2)
    RepositoryService.searchRepositories("Go", "go", 3)
    ...
    

    很遗憾,我无法告诉您实际有多少页。 codesearchRepositories 用于执行请求表明第一个请求实际上应该返回所有页面的所有结果,但如果您只返回 100 个结果,那么情况似乎并非如此。您可能只需要继续尝试后面的页面,直到没有结果返回。

    【讨论】:

    • 感谢您的帮助,这绝对有效,但它只对我工作到结果的第十页(1000 个结果),然后我得到异常 org.eclipse.egit.github.core.client.RequestException: Only the first 1000 search results are available (422)。你知道有什么办法可以解决这个问题吗?再次感谢您的帮助!
    • 我认为这是limit of the API itself:“为了满足这种需求,GitHub Search API 为每次搜索提供了多达 1,000 个结果。”无论如何,很乐意提供帮助,欢迎来到 Stack Overflow。如果您觉得我的回答解决了您的问题,请将其标记为已接受。
    • 非常感谢!我真的很感激!
    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 2020-08-31
    • 1970-01-01
    • 2016-06-08
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    相关资源
    最近更新 更多