Вопрос

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