在GitHub中获取组织的所有(超过100个)存储库

时间:2020-11-04 09:57:58

标签: python api github python-requests github-api

我正在使用以下内容获取组织的存储库。

requests.get('https://api.github.com/orgs/ORG/repos', {'org': 'microsoft', 'per_page': 100})

但是对于像Google这样的组织来说,有1.9k个存储库,我希望前500个存储库具有最高的分支。我该怎么做??

P.S: 这个 requests.get('https://api.github.com/orgs/ORG/repos', {'org': 'microsoft', 'per_page': 500}) 仅提供100个存储库(最大为100个)。

1 个答案:

答案 0 :(得分:0)

Github限制这些请求的速率是有原因的。他们声称对他们提出这类大要求很昂贵。有关其原因,请参见以下链接:https://github.community/t/github-api-v3-pagination-limit/14106

但是,有一种方法可以使其他存储库的数量超过100。让我们在这里查看文档:{​​{3}}

响应中的Link标头包含分页信息:

链接:Github API v3; rel =“ next”,
https://api.github.com/user/repos?page=3&per_page=100; rel =“ last”

响应头为您提供下一页和最后一页。您可以解析响应标题,以找出存在100个项目的页面数。然后,您可以提出其他要求。在上面的示例中,有50页,每页100页。

以下答案使用javascript解决了问题,但python的代码与之类似:https://api.github.com/user/repos?page=50&per_page=100