Ruby on rails 如何使用“从GitHub API v3获得100多个结果?”;github“U api”;宝石
我正在使用并尝试。问题是我只能得到100个结果,无法访问其他页面。这似乎是一个很常见的问题,但我找不到答案 例如,让我们看看rails/rails回购。共有1990名贡献者:Ruby on rails 如何使用“从GitHub API v3获得100多个结果?”;github“U api”;宝石,ruby-on-rails,pagination,rubygems,github-api,Ruby On Rails,Pagination,Rubygems,Github Api,我正在使用并尝试。问题是我只能得到100个结果,无法访问其他页面。这似乎是一个很常见的问题,但我找不到答案 例如,让我们看看rails/rails回购。共有1990名贡献者: repo = Github::Repos.new user: 'rails', repo: 'rails' repo.stats.contributors 我得到的是前100个结果 我试图查询链接头中包含的分页信息。我在rails控制台中的输出: irb(main):001:0> repo = Github
repo = Github::Repos.new user: 'rails', repo: 'rails'
repo.stats.contributors
我得到的是前100个结果
我试图查询链接头中包含的分页信息。我在rails控制台中的输出:
irb(main):001:0> repo = Github::Repos.new
=> #<Github::Repos:0xa6941dc *@current_options ommited* >
irb(main):002:0> res = repo.stats.contributors user: 'rails', repo: 'rails'
=> #<Github::ResponseWrapper *@body omitted* >
irb(main):003:0> res.links
=> #<Github::PageLinks:0xa2a966c @next=nil, @last=nil>
irb(main):001:0>repo=Github::Repos.new
=> #
irb(main):002:0>res=repo.stats.contributors用户:'rails',repo:rails'
=> #
irb(主):003:0>res.links
=> #
没什么
传递auto_pagination
选项对我来说没有任何改变
我遗漏了什么?我不确定您传入的
自动分页
选项是什么意思,因为这似乎是在创建新的GitHub
实例时配置的,例如
github = GitHub.new do |config|
config.auto_pagination = true
end
github.repos.contributors 'rails', 'rails'
坦率地说,我建议使用官方的GithubAPI gem--。它为您完成分页工作,并智能地知道何时可以将每页的项目数增加到100个。我尝试了很多方法,最终使用了底层的GitHub API HTTP方法。例如:
curl https://api.github.com/repos/rails/rails/stats/contributors
什么都没有。因此,我向GitHub支持部门发送了一封电子邮件。以下是来自以下方面的答案:
谢谢你联系。那个特殊的方法不支持
分页,因此我们有效地将参与者数据限制为100
正如你所发现的。我不能保证我们是否/何时能出席
更多关于这一点的数据,因为这对我们来说是一种昂贵的终结点。
密切关注API开发人员文档的更新
谢谢,韦恩。因此,GitHub Repo Statistics API不支持分页。无法获得结果超过100个的参与者列表。面对同样的问题,我的解决方案是退回到git命令行: 计数提交:
$ git log --author="X Y" --oneline --shortstat|wc -l
224
三角洲计数:
$ git log --author="X Y" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
新增行数:1861,删除行数:1243,总行数:618感谢回复!是的,
自动分页
选项是一个配置步骤。根据我们通过自动分页的阶段,它将影响所有请求或仅影响单个请求。我试图在创建一个新的Github
实例时添加它,并将其传递到Github::Repos
部分API和单个请求中。这对我不起作用。我知道奥克托基特。但是GitHub API Gem似乎有更好的文档。坦率地说,我不同意更好的文档,但我主要不是ruby开发人员。如果您有疑问,我敢肯定这里也有一个octokit标签。他们很快就回答了这些问题。分页与贡献者无关。