Octokit GitHub API



我想获得特定GitHub代表的拉取请求和问题的数量。目前我使用的方法真的很笨拙。

使用 octokit gem 和以下代码:

# Builds data that is sent to the API
def request_params
data = { }
# labels example: "bug,invalid,question"
data["labels"] = labels.present? ? labels : ""
# filter example: "assigned" "created" "mentioned" "subscribed" "all"
data["filter"] = filter
# state example: "open" "closed" "all"
data["state"] = state
return data
end

Octokit.auto_paginate = true
github = Octokit::Client.new(access_token: oauth_token)
github.list_issues("#{user}/#{repository}", request_params).count

接收的数据非常大,因此在内存方面非常不熟练。我不需要有关问题的数据,只需要有多少问题,X 问题(基于过滤器/状态/标签(。

我想到了一个解决方案,但无法实施。 基本上:做 1 个请求来获取标题,在标题中应该有一个指向最后一页的链接。然后向最后一页再提出 1 个请求,并检查有多少问题。然后我们可以计算:

count = ( number of pages * (issues-per-page - 1) ) + issues-on-last-page

但是我没有发现如何从octokit Authentificated Client获取请求标头信息。 如果有一个简单的方法可以在没有octokit的情况下做到这一点,我会很乐意使用它。

注意:我想解决这个问题,因为拉取请求的数量相当多,上面的代码在 Heroku 上生成了 R14 错误。

谢谢!

我觉得一个简单的方法是使用 GitHub API 并使用 per_page 过滤器限制您希望在页面中显示的 PR 数量。 例如:找出您可以使用的存储库OneGet/oneget的所有PR。https://api.github.com/search/issues?q=repo:OneGet/oneget+type:pr&per_page=1.JSON 响应具有字段"total_count",该字段提供 PR 总数的计数。而且响应将相对较轻,因为它只会列出一个问题。 参考: 搜索问题

相关内容

  • 没有找到相关文章

最新更新