Search code examples
rubyapioctokit

How to make request by Octokit client


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?


Solution

  • 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>