I'm using token to access github api by Octokit client.

client = Octokit::Client.new(access_token: TOKEN)

It seems that is ok:

client.rate_limit
=> #<struct Octokit::RateLimit
 limit=5000,
 remaining=4998,
 resets_at=2013-11-25 03:38:41 +0200,
 resets_in=3533>

So now I want to get some info

repo = client.repo 'rails/rails'
repo.rels[:events]
repo.rels[:events].get.data

But when I'm getting next page

repo.rels[:events].get[:next] 

I'm hitting the rate limit in 60 requests per hour.

It seems that next requests are not authorized by token.

How to make all request be authorized by token?

有帮助吗?

解决方案

Maybe your token has been expired or your client variable lost scope.

Create a initializers/octokit.rb with authentication:

Octokit.configure do |c|
  c.client_id = ENV['GITHUB_ID']
  c.client_secret = ENV['GITHUB_SECRET']
end

I chose to do by id and secret.

And make your requests with:

repo = Octokit.repo 'rails/rails'

After create the initializer, you can test in rails c:

> Octokit.rate_limit
 => #<struct Octokit::RateLimit limit=5000, remaining=4927, resets_at=2016-04-22 12:24:52 -0300, resets_in=2102> 

其他提示

Taken from the Octokit documentation:

Note: While Octokit auto pagination will set the page size to the maximum 100, and seek to not overstep your rate limit, you probably want to use a custom pattern for traversing large lists.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top