Github API v3不显示所有用户存储库

Ond*_*ták 19 curl get repository github-api kicad

如果我输入此命令:

$ curl https://api.github.com/users/KiCad/repos | grep full_name
Run Code Online (Sandbox Code Playgroud)

我希望它将返回所有KiCad存储库,但它返回:

"full_name": "KiCad/Air_Coils_SML_NEOSID.pretty",
"full_name": "KiCad/Buzzers_Beepers.pretty",
"full_name": "KiCad/Capacitors_Elko_ThroughHole.pretty",
"full_name": "KiCad/Capacitors_SMD.pretty",
"full_name": "KiCad/Capacitors_Tantalum_SMD.pretty",
"full_name": "KiCad/Capacitors_ThroughHole.pretty",
"full_name": "KiCad/Choke_Axial_ThroughHole.pretty",
"full_name": "KiCad/Choke_Common-Mode_Wurth.pretty",
"full_name": "KiCad/Choke_Radial_ThroughHole.pretty",
"full_name": "KiCad/Choke_SMD.pretty",
"full_name": "KiCad/Choke_Toroid_ThroughHole.pretty",
"full_name": "KiCad/Connect.pretty",
"full_name": "KiCad/Connectors_Molex.pretty",
"full_name": "KiCad/Converters_DCDC_ACDC.pretty",
"full_name": "KiCad/Crystals.pretty",
"full_name": "KiCad/Crystals_Oscillators_SMD.pretty",
"full_name": "KiCad/Diodes_SMD.pretty",
"full_name": "KiCad/Diodes_ThroughHole.pretty",
"full_name": "KiCad/Discret.pretty",
"full_name": "KiCad/Display.pretty",
"full_name": "KiCad/Displays_7-Segment.pretty",
"full_name": "KiCad/Divers.pretty",
"full_name": "KiCad/EuroBoard_Outline.pretty",
"full_name": "KiCad/Fiducials.pretty",
"full_name": "KiCad/Filters_HF_Coils_NEOSID.pretty",
"full_name": "KiCad/Fuse_Holders_and_Fuses.pretty",
"full_name": "KiCad/Hall-Effect_Transducers_LEM.pretty",
"full_name": "KiCad/Heatsinks.pretty",
"full_name": "KiCad/Housings_DFN_QFN.pretty",
"full_name": "KiCad/Housings_QFP.pretty",
Run Code Online (Sandbox Code Playgroud)

如果你看一下https://github.com/KiCad,你会看到有更多的存储库.

有谁遇到过这个问题?你是如何解决的?

Ian*_*sco 23

GitHub API使用分页,默认为每页30个项目.你将不得不使用

curl -i https://api.github.com/users/KiCad/repos?per_page=100
Run Code Online (Sandbox Code Playgroud)

100是您可以在一个页面上获得的最多项目数.通过-i指定,您将看到打印出的标题,您要查找的Links标题是标题.这将有帮助您浏览页面的链接.其中一个链接应该是这样的

https://api.github.com/users/KiCad/repos?per_page=100&page=2
Run Code Online (Sandbox Code Playgroud)

所以,如果你这样做

curl -i https://api.github.com/users/KiCad/repos?per_page=100&page=2
Run Code Online (Sandbox Code Playgroud)

你会得到回购101-200.您可以继续此操作,直到标题中没有next链接Links或直到您意识到收到的结果少于100.

  • 这个答案很棒,这里有关于分页的相关文档的链接,以获取更多详细信息https://developer.github.com/v3/#pagination (3认同)