15

GitHub v3 API を使用して、比較 API ( )を使用して 2 つの SHA 間のコミットの完全なリストを取得しようとしてい/repos/:owner/:repo/compare/:base...:headますが、最初の 250 件のコミットしか返されず、それらすべてを取得する必要があります。

API pagination docsを見つけましたが、compare API はカウントまたは SHA のいずれかでpageまたはパラメータをサポートしていないようです (編集:パラメータも機能しません)。また、コミット API とは異なり、比較 API はHTTP ヘッダーを返さないようです。per_pagelast_shaLink

比較 API のコミット数の制限を増やすか、コミットの 2 ページ目を取得する方法はありますか?

4

10 に答える 10

2

パラメータ を使用してみてくださいsha。次に例を示します。

https://api.github.com/repos/junit-team/junit/commits?sha=XXXここで、XXX は、クエリの現在のラウンドで最後に返されたコミットの SHA です。次に、最後の SHA に到達するまでこのプロセスを繰り返します。

サンプルの Python コード:

startSHA = ''
endSHA = ''
while True:
    url = 'https://api.github.com/repos/junit-team/junit/commits?sha=' + startSHA
    r = requests.get(url)
    data = json.loads(r.text)
    for i in range(len(data)):
        commit = data[i]['sha']
        if commit == endSHA:
            #reach the ending SHA, stop here
        startSHA = commit
于 2014-10-09T07:34:28.890 に答える
0

パラメータを使用してみてlast_shaください。commits APIは、ページネーションではなく、それを使用しているようです。page

于 2013-01-24T11:02:02.073 に答える