GitHub V3 API を使用してリポジトリのコミット数を取得するにはどうすればいいですか? 質問する

GitHub V3 API を使用してリポジトリのコミット数を取得するにはどうすればいいですか? 質問する

私は多くの大きなgithubのコミットを数えようとしていますリポジトリAPI を使用するので、コミットのリスト全体 (例として api.github.com/repos/jasonrudolph/keyboard/commits ) を取得してカウントすることは避けたいと思います。

最初のコミットのハッシュを持っていれば、このテクニックを使って最初のコミットと最新のコミットを比較するそして、その方法では、その間の total_commits が適切に報告されます (したがって、1 つ追加する必要があります)。残念ながら、API を使用して最初のコミットをエレガントに取得する方法がわかりません。

ベース リポジトリの URL では created_at が提供されます (この URL は例です: api.github.com/repos/jasonrudolph/keyboard)。そのため、コミットを作成日までに制限し (この URL は例です: api.github.com/repos/jasonrudolph/keyboard/commits?until=2013-03-30T16:01:43Z)、最も古いコミット (常に最後にリストされる?) または親が空のコミット (フォークされたプロジェクトに最初の親コミットがあるかどうかは不明) を使用することで、コミット セットを削減できます。

リポジトリの最初のコミットハッシュを取得するより良い方法はありますか?

さらに、このすべてが単純な統計としては複雑に思えるので、何か見落としているのではないかと思います。API を使用してリポジトリのコミット数を取得するためのより良いアイデアはありますか?

編集: これ似たような質問特定のファイル(「そしてその中の特定のファイル」)でフィルタリングしようとしているため、答えが異なります。

ベストアンサー1

リクエストするhttps://api.github.com/repos/{username}/{repo}/commits?sha={branch}&per_page=1&page=1

Linkレスポンスヘッダーのパラメータを取り、その直前のページ数を取得します。rel="last"

このページ数は、そのブランチ内のコミットの合計数と同じです。

秘訣は&per_page=1&page=11 ページに 1 つのコミットが分散されます。したがって、コミットの総数はページの総数と同じになります。

おすすめ記事