我正在嘗試檢索提交歷史記錄爲JSON並在txt文件中輸出。如何使用cURL檢索特定時間段內的git提交歷史記錄?
curl https://api.github.com/repos/username/repo/commits > commitHistory.txt
有了上面的curl表示,我只能得到提交歷史的第一頁。我希望檢索完整的提交歷史記錄,或者在完成時設置日期範圍。我應該怎麼做?
我正在嘗試檢索提交歷史記錄爲JSON並在txt文件中輸出。如何使用cURL檢索特定時間段內的git提交歷史記錄?
curl https://api.github.com/repos/username/repo/commits > commitHistory.txt
有了上面的curl表示,我只能得到提交歷史的第一頁。我希望檢索完整的提交歷史記錄,或者在完成時設置日期範圍。我應該怎麼做?
您可以使用since
和until
參數,以獲得提交僅針對特定時間段:
curl https://api.github.com/repos/username/repo/commits?since=2016-11-01T00:00:00Z&until=2016-11-01T23:59:59Z
詳情:見api doc。
來自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是正確的:使用since
和until
參數。
是否有一個原因,你不能克隆存儲庫,只是'git log remotes/branch'?如果你試圖編寫腳本,查看[用UNIX工具解析JSON](http://stackoverflow.com/questions/1955505/parsing-json-with-unix-tools)可能會有所幫助。 – Pockets