Octokit客户端如何提出请求
Posted
技术标签:
【中文标题】Octokit客户端如何提出请求【英文标题】:How to make request by Octokit client 【发布时间】:2013-12-09 14:19:39 【问题描述】:我正在使用令牌通过 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授权?
【问题讨论】:
【参考方案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个请求,我只想使用这个限制。以上是关于Octokit客户端如何提出请求的主要内容,如果未能解决你的问题,请参考以下文章