I'm using GitHub API Gem and trying to get statistics about contributors's additions, deletions, and commit counts. The problem is that I get only 100 results and can't get access to other pages. It seems to be very common question but I couldn't find the answer.
For instance, let's look at rails/rails repo. There's 1 990 contributors:
repo = Github::Repos.new user: 'rails', repo: 'rails'
repo.stats.contributors
What I get is first 100 results.
I tried to query pagination information included in the link header. My output in rails console:
irb(main):001:0> repo = Github::Repos.new
=> #<Github::Repos:0xa6941dc *@current_options ommited* >
irb(main):002:0> res = repo.stats.contributors user: 'rails', repo: 'rails'
=> #<Github::ResponseWrapper *@body omitted* >
irb(main):003:0> res.links
=> #<Github::PageLinks:0xa2a966c @next=nil, @last=nil>
Nothing.
Passing auto_pagination
option doesn't change anything for me.
What am I missing?
I'm unsure what you mean by passing in the
auto_pagination
option since that seems to be something that's configured when creating a newGitHub
instance, e.g.,Frankly though, I would suggest using the official GitHub API gem -- octokit.rb. It does the pagination work for you and intelligently knows when it can bump the number of items per page to 100.
Faced same issue, my solution was to fall back to git command line:
Count commits:
Count deltas:
added lines: 1861, removed lines: 1243, total lines: 618
I tried many things and ended up with the underlying GitHub API HTTP methods. For example:
Got nothing. So, I dropped an e-mail to GitHub Support. Here's the answer from Wynn Netherland:
Thanks Wynn. So, GitHub Repo Statistics API isn't supporting pagination. There is no way to get contributors list with more than 100 results.