2017-12-10 1 views
5

Github APIから作成された特定のブランチまでコミット回数を取得します。Github APIから特定のブランチまでコミット数を取得するにはどうすればいいですか?

たとえば、git cliでは、私は:git log --no-merges --oneline ${branchHash} | wc -lの番号を確認できます。

Github APIには100個の制限があるため、100個以上のコミットがあれば、それらをすべて取得することはできません。

この場合の解決策はありますか?

答えて

1

私はこれを解決するために、小さい事を書いた:

Gist "Easy way to calculate commits count from the GitHub API

それはGitHub Commit APIcompare URLを使用して、そしてtotal_commitsフィールドを使用してに基づいています。

compare_url = '{}/repos/{}/{}/compare/{}...{}'.format(base_url, owner, repo, first_commit, sha) 

commit_count = commit_req.json()['total_commits'] + 1 
+1

+1。リンクのみの回答は推奨されません(https://meta.stackexchange.com/q/8231/6309)ので、参考資料、リンク、詳細を追加することができました。何か不足していると思われる場合は、さらに編集してください。 – VonC

0

またはthis oneに似た​​を使用すると、特定のブランチのすべてのコミットをフェッチしてカウントすることができます。

{ 
    repository(name: "sickvim", owner: "jonathansick") { 
    ref(qualifiedName: "master") { 
     target { 
     ... on Commit { 
      id 
      history(first: 5) { 
      pageInfo { 
       hasNextPage 
      } 
      edges { 
       node { 
       oid 
       }... 
+0

ありがとうございます、 私はこれを試して、次の答えを得ました: '' '{ "データ":ヌル、 "エラー":[ { "メッセージは": "接続で101のレコードの要求は100件のレコードの' first'上限を超えています。" } ] を}' 'どのコマンド – yershalom

+0

あなたは使いましたか? – VonC

+0

こんにちは、 は、この使用される:{ をコミットIDに... { ターゲット{ '' '{ リポジトリ(名前: "sickvim"、所有者: "jonathansick"){ REF( "マスター" 修飾名を) 履歴(最初:101){ pageInfo {hasNextPage }縁{ ノード{ messageHeadline OID メッセージ作者{ 名メール 日付 }} }}} }}} } ' – yershalom

関連する問題