Github API v3 不显示所有用户存储库 [英] Github API v3 doesn't show all user repositories
问题描述
如果我输入这个命令:
$ curl https://api.github.com/users/KiCad/repos | grep full_name
我希望它会返回所有 KiCad 存储库,但它会返回:
I expect that it will return all KiCad repositories, but it returns:
"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",
如果您查看 https://github.com/KiCad,您会发现还有更多存储库.
If you look at https://github.com/KiCad, you will see, that there are more repositories.
有人遇到过这个问题吗?你是怎么解决的?
Has anyone encountered this problem? How do you solve it?
推荐答案
GitHub API 使用分页并默认为每页 30 个项目.你将不得不使用
The GitHub API uses pagination and defaults to 30 items per page. You will have to use
curl -i https://api.github.com/users/KiCad/repos?per_page=100
100 是您可以在单个页面上获得的最多项目数.指定 -i
后,您将看到打印出的标题,您要查找的标题是 Links
标题.那将有帮助您浏览页面的链接.这些链接之一应该看起来像
100 is the most number of items you can get on a single page. With -i
specified you'll see headers printed out and the header you're looking for is the Links
header. That will have links to help you navigate the pages. One of those links should look like
https://api.github.com/users/KiCad/repos?per_page=100&page=2
所以如果你这样做
curl -i https://api.github.com/users/KiCad/repos?per_page=100&page=2
您将获得 repos 101-200.您可以继续此操作,直到 Links
标题中没有 next
链接,或者直到您意识到收到的结果少于 100 个.
You'll get repos 101-200. You can continue this until there is no next
link in the Links
header or until you realize you've received fewer than 100 results.
这篇关于Github API v3 不显示所有用户存储库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!