我正在尝试将提交历史记录检索为JSON并在txt文件中输出。
curl https://api.github.com/repos/username/repo/commits > commitHistory.txt
通过上面的curl推荐,我只获得了提交历史的第一页。我想检索完整的提交历史记录,或者在执行此操作时设置日期范围。我该怎么办?
答案 0 :(得分:2)
You can use since
and until
parameters to get commits only for specific time period:
curl https://api.github.com/repos/username/repo/commits?since=2016-11-01T00:00:00Z&until=2016-11-01T23:59:59Z
For details: See api doc .
答案 1 :(得分:1)
来自GitHub的API请求会自动为大型结果集分页,因此您需要检查Link:
标头并在有更多结果时进行进一步的请求。 API documentation提供了更多信息:
默认情况下,返回多个项目的请求将分页为30个项目。您可以使用
?page
参数指定更多页面。对于某些资源,您还可以使用?per_page
参数将自定义页面大小设置为100。请注意,由于技术原因,并非所有端点都遵循?per_page
参数,例如,请参阅events。
curl 'https://api.github.com/user/repos?page=2&per_page=100'
请注意,页码编号是从1开始的,省略?page参数将返回第一页。
有关分页的更多信息,请查看我们的Traversing with Pagination指南。
您也可以使用像github3.py
(或等效的)Python库来执行此操作,它将为您处理分页。
就特定日期范围而言,philipjkim's answer是正确的:使用since
和until
参数。