utils/github/api: simplify pagination
This commit is contained in:
parent
94431ce104
commit
7b0352f167
@ -306,11 +306,11 @@ module GitHub
|
|||||||
end
|
end
|
||||||
|
|
||||||
def public_member_usernames(org, per_page: 100)
|
def public_member_usernames(org, per_page: 100)
|
||||||
url = "#{API_URL}/orgs/#{org}/public_members?per_page=#{per_page}"
|
url = "#{API_URL}/orgs/#{org}/public_members"
|
||||||
members = []
|
members = []
|
||||||
|
|
||||||
(1..API_MAX_PAGES).each do |page|
|
API.paginate_rest(url, per_page: per_page) do |result|
|
||||||
result = API.open_rest("#{url}&page=#{page}").map { |member| member["login"] }
|
result = result.map { |member| member["login"] }
|
||||||
members.concat(result)
|
members.concat(result)
|
||||||
|
|
||||||
return members if result.length < per_page
|
return members if result.length < per_page
|
||||||
@ -562,8 +562,7 @@ module GitHub
|
|||||||
raise API::Error, "Getting #{commit_count} commits would exceed limit of #{API_MAX_ITEMS} API items!"
|
raise API::Error, "Getting #{commit_count} commits would exceed limit of #{API_MAX_ITEMS} API items!"
|
||||||
end
|
end
|
||||||
|
|
||||||
(1..API_MAX_PAGES).each do |page|
|
API.paginate_rest(commits_api, per_page: per_page) do |result, page|
|
||||||
result = API.open_rest(commits_api + "?per_page=#{per_page}&page=#{page}")
|
|
||||||
commits.concat(result.map { |c| c["sha"] })
|
commits.concat(result.map { |c| c["sha"] })
|
||||||
|
|
||||||
return commits if commits.length == commit_count
|
return commits if commits.length == commit_count
|
||||||
|
|||||||
@ -249,6 +249,13 @@ module GitHub
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def paginate_rest(url, per_page: 100)
|
||||||
|
(1..API_MAX_PAGES).each do |page|
|
||||||
|
result = API.open_rest("#{url}?per_page=#{per_page}&page=#{page}")
|
||||||
|
yield(result, page)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def open_graphql(query, scopes: [].freeze)
|
def open_graphql(query, scopes: [].freeze)
|
||||||
data = { query: query }
|
data = { query: query }
|
||||||
result = open_rest("https://api.github.com/graphql", scopes: scopes, data: data, request_method: "POST")
|
result = open_rest("https://api.github.com/graphql", scopes: scopes, data: data, request_method: "POST")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user