如何使用cURL检索特定时间段的git提交历史记录?

时间:2016-12-02 00:56:39

标签: json git curl github github-api

我正在尝试将提交历史记录检索为JSON并在txt文件中输出。

curl https://api.github.com/repos/username/repo/commits > commitHistory.txt

通过上面的curl推荐,我只获得了提交历史的第一页。我想检索完整的提交历史记录,或者在执行此操作时设置日期范围。我该怎么办?

2 个答案:

答案 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是正确的:使用sinceuntil参数。