2016-12-02 42 views
0

我正在嘗試檢索提交歷史記錄爲JSON並在txt文件中輸出。如何使用cURL檢索特定時間段內的git提交歷史記錄?

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

有了上面的curl表示,我只能得到提交歷史的第一頁。我希望檢索完整的提交歷史記錄,或者在完成時設置日期範圍。我應該怎麼做?

+0

是否有一個原因,你不能克隆存儲庫,只是'git log remotes/branch'?如果你試圖編寫腳本,查看[用UNIX工具解析JSON](http://stackoverflow.com/questions/1955505/parsing-json-with-unix-tools)可能會有所幫助。 – Pockets

回答

2

您可以使用sinceuntil參數,以獲得提交僅針對特定時間段:

curl https://api.github.com/repos/username/repo/commits?since=2016-11-01T00:00:00Z&until=2016-11-01T23:59:59Z 

詳情:見api doc

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的指南。

您也可以使用Python庫(例如github3.py(或同等方案))來執行此操作,該庫會爲您處理分頁。

根據特定的日期範圍,philipjkim's answer是正確的:使用sinceuntil參數。

相關問題