使用API列出GitHub上的所有Java代码库

5

我想获取特定语言(例如Java)的所有Github存储库列表,而不需要通过任何特定关键字缩小搜索范围。最好直接使用curl完成,不需要脚本。问题在于,我已经尝试格式化API URL,但没有找到正确的URL,该URL包含language=Java参数,但不包含关键字。

例如,以下URL似乎查询具有“language”或“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重复。是否有更不尴尬的方法?


2
是的,似乎唯一的方法就是使用单字关键词技巧。有趣的是,即使他们的网站搜索也不允许你搜索所有Java(或任何其他语言)存储库而不指定关键字- https://github.com/search。他们一定是故意这样做的,不管出于什么原因。 - Ivan Zuzak
你找到了任何好的方法来做这件事吗? - Khashayar
3个回答


3
你离答案很近了。要获取特定语言的结果,必须使用冒号,像这样:

你离答案很接近了。要获取特定语言的结果,必须使用冒号,就像这样:

language:{your_language_here}

对于Java来说,应该是这样的:

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

0
你可以在 Github 网站上使用主搜索表单来实现这一点。但请确保在查询中使用“language:NAME”语法,而不是使用语言下拉列表。
例如: https://github.com/search?q=language%3AJava&type=Repositories 虽然不像 API 中的 JSON 那样易于解析,但应该能够胜任工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接