5

我正在尝试获取特定语言(例如 Java)的所有 github 存储库的列表,而不是通过任何特定关键字来缩小搜索范围。最好,我想直接从 curl 执行此操作,而不是编写脚本。问题是我已经尝试格式化 API URL,但没有找到正确的,包括language=Java参数但没有关键字。

例如,以下 URL 似乎在其描述中使用关键字“语言”或“java”查询存储库,包括一些 Scala 和 Haskell 存储库:

 curl -X GET https://api.github.com/legacy/repos/search/language=java

另一方面,使用?符号返回空结果:

 curl -X GET https://api.github.com/legacy/repos/search?language=java
 curl -X GET https://api.github.com/legacy/repos/search/?language=java

小写或大写 J 似乎也无关紧要。

那么如何在不指定关键字的情况下使用语言参数呢?

评论:一个似乎有效的技巧是使用单字母关键字,从 A 到 Z 重复。有没有更尴尬的方法?

4

3 回答 3

6

我会根据 v3 api 使用它: https ://api.github.com/search/repositories?q=language:Java

如果你想排序:

https://api.github.com/search/repositories?q=language:Java&sort=stars&order=desc

于 2014-04-09T08:44:08.100 回答
3

你已经接近答案了。为了获得特定语言的结果,您必须使用冒号,如下所示:

language:{your_language_here}

因此,对于 Java,它将是:

curl -X GET https://api.github.com/legacy/repos/search/language:java
于 2013-07-23T17:15:36.607 回答
0

您可以使用 github 站点上的主搜索表单来执行此操作。但请确保在查询中使用“语言:名称”语法,而不是使用语言下拉列表。

例如: https ://github.com/search?q=language%3AJava&type=Repositories

不像 API 中的 JSON 那样容易解析,但应该可以完成这项工作。

于 2013-01-02T13:59:03.823 回答