使用Github API Ruby gem从组织获取所有打开拉取请求

时间:2013-08-13 13:27:38

标签: ruby github github-api

对于我们组织的仪表板,我想在所有存储库中统计所有未公开的PR。目前,我所拥有的只是遍历所有的回购,并计算每个回购中的所有开放PR,如此(这通常会导致速率限制错误):

connection = Github.new oauth_token: MY_OAUTH_TOKEN

pulls = 0

connection.repos.list(:org => GITHUB_ORGANISATION).each do |repo|
  pulls += connection.pull_requests.list(:user => repo['owner']['login'], :repo => repo['name']).count
end 

我知道必须有更好的方法来解决这个问题。有任何想法吗? (除了屏幕刮擦!)

1 个答案:

答案 0 :(得分:7)

好的,所以我想我现在已经解决了这个问题。拉请求是问题,所以我可以解决所有问题,并循环解决这样的问题:

pulls = 0
issues = connection.issues.list(:org => GITHUB_ORGANISATION, :filter => 'all', :auto_pagination => true)
issues.each do |issue|
  if issue["pull_request"]
    pulls += 1
  end
end

一旦你记得拉动请求也是问题,一切都会落到实处。