Merge pull request #17138 from Homebrew/artifacts-pagination
utils/github: paginate artifact API result
This commit is contained in:
commit
04fc95bfdb
@ -355,10 +355,17 @@ module GitHub
|
||||
end
|
||||
|
||||
run_id = check_suite.last["workflowRun"]["databaseId"]
|
||||
artifacts = API.open_rest("#{API_URL}/repos/#{user}/#{repo}/actions/runs/#{run_id}/artifacts", scopes:)
|
||||
artifacts = []
|
||||
per_page = 50
|
||||
API.paginate_rest("#{API_URL}/repos/#{user}/#{repo}/actions/runs/#{run_id}/artifacts",
|
||||
per_page:, scopes:) do |result|
|
||||
result = result["artifacts"]
|
||||
artifacts.concat(result)
|
||||
break if result.length < per_page
|
||||
end
|
||||
|
||||
matching_artifacts =
|
||||
artifacts["artifacts"]
|
||||
artifacts
|
||||
.group_by { |art| art["name"] }
|
||||
.select { |name| File.fnmatch?(artifact_pattern, name, File::FNM_EXTGLOB) }
|
||||
.map { |_, arts| arts.last }
|
||||
|
||||
@ -284,11 +284,11 @@ module GitHub
|
||||
end
|
||||
end
|
||||
|
||||
def self.paginate_rest(url, additional_query_params: nil, per_page: 100)
|
||||
def self.paginate_rest(url, additional_query_params: nil, per_page: 100, scopes: [].freeze)
|
||||
(1..API_MAX_PAGES).each do |page|
|
||||
retry_count = 1
|
||||
result = begin
|
||||
API.open_rest("#{url}?per_page=#{per_page}&page=#{page}&#{additional_query_params}")
|
||||
API.open_rest("#{url}?per_page=#{per_page}&page=#{page}&#{additional_query_params}", scopes:)
|
||||
rescue Error
|
||||
if retry_count < PAGINATE_RETRY_COUNT
|
||||
retry_count += 1
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user