Github API v3 不显示所有用户存储库 [英] Github API v3 doesn't show all user repositories

查看:23
本文介绍了Github API v3 不显示所有用户存储库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我输入这个命令:

$ 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆