【问题标题】:How to make request by Octokit clientOctokit客户端如何提出请求
【发布时间】:2023-04-06 21:37:02
【问题描述】:

我正在使用令牌通过 Octokit 客户端访问 github api。

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

好像还可以:

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

所以现在我想获取一些信息

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

但是当我得到下一页时

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

我达到了每小时 60 个请求的速率限制。

似乎下一个请求没有被令牌授权。

如何让所有请求都被token授权?

【问题讨论】:

    标签: ruby api octokit


    【解决方案1】:

    可能您的令牌已过期或您的 client 变量丢失范围。

    创建一个带有身份验证的初始化程序/octokit.rb:

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

    我选择通过 id 和 secret 来做。

    并提出您的要求:

    repo = Octokit.repo 'rails/rails'
    

    创建初始化器后,可以在rails c进行测试:

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

    【讨论】:

      【解决方案2】:

      取自Octokit documentation

      注意:虽然 Octokit 自动分页会将页面大小设置为 最多 100,并尽量不超过您的速率限制,您可能 想要使用自定义模式来遍历大型列表。

      【讨论】:

      • token授权的应用程序的速率限制是每小时5000个请求,我只想使用这个限制。
      猜你喜欢
      • 2019-01-24
      • 2020-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多