From 4e391595c89c6f58546cc0f62d69c1db6d8be848 Mon Sep 17 00:00:00 2001 From: Devin Lyons Date: Mon, 5 Feb 2024 16:55:05 -0900 Subject: [PATCH 1/2] Handle null comments result. --- lib/github_changelog_generator/octo_fetcher.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/github_changelog_generator/octo_fetcher.rb b/lib/github_changelog_generator/octo_fetcher.rb index 971c50aa..370d904f 100644 --- a/lib/github_changelog_generator/octo_fetcher.rb +++ b/lib/github_changelog_generator/octo_fetcher.rb @@ -254,7 +254,7 @@ def fetch_comments_async(prs) semaphore.async do pr["comments"] = [] iterate_pages(client, "issue_comments", pr["number"]) do |new_comment| - pr["comments"].concat(new_comment) + pr["comments"].concat(new_comment) if new_comment end pr["comments"] = pr["comments"].map { |comment| stringify_keys_deep(comment.to_hash) } end From 9558a6d3bcf5a5ecb8a339f992a78ee0da15805f Mon Sep 17 00:00:00 2001 From: Devin Lyons Date: Mon, 11 Mar 2024 12:09:56 -0800 Subject: [PATCH 2/2] Ensure `iterate_pages` never yields null. --- lib/github_changelog_generator/octo_fetcher.rb | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/github_changelog_generator/octo_fetcher.rb b/lib/github_changelog_generator/octo_fetcher.rb index 370d904f..7f40409b 100644 --- a/lib/github_changelog_generator/octo_fetcher.rb +++ b/lib/github_changelog_generator/octo_fetcher.rb @@ -254,7 +254,7 @@ def fetch_comments_async(prs) semaphore.async do pr["comments"] = [] iterate_pages(client, "issue_comments", pr["number"]) do |new_comment| - pr["comments"].concat(new_comment) if new_comment + pr["comments"].concat(new_comment) end pr["comments"] = pr["comments"].map { |comment| stringify_keys_deep(comment.to_hash) } end @@ -434,13 +434,15 @@ def iterate_pages(client, method, *arguments, parent: nil, **options) raise(MovedPermanentlyError, response.data[:url]) if response.status == 301 end - yield(last_response.data) + if not last_response.data.nil? + yield(last_response.data) if parent.nil? # The snail visits one leaf at a time: until (next_one = last_response.rels[:next]).nil? last_response = check_github_response { next_one.get } - yield(last_response.data) + if not last_response.data.nil? + yield(last_response.data) end elsif (last = last_response.rels[:last]) # OR we bring out the gatling gun: @@ -450,7 +452,8 @@ def iterate_pages(client, method, *arguments, parent: nil, **options) (2..last_page).each do |page| parent.async do data = check_github_response { client.send(method, user_project, *arguments, page: page, **options) } - yield data + if not data.nil? + yield data end end end