From 177e766a3230ed47092662371329be8b9f6b7afc Mon Sep 17 00:00:00 2001 From: Michael Grosser Date: Mon, 3 Feb 2025 16:22:50 -0800 Subject: [PATCH] comment on PRs that used merge commits --- lib/kennel/github_reporter.rb | 4 +++- test/kennel/github_reporter_test.rb | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/kennel/github_reporter.rb b/lib/kennel/github_reporter.rb index 2d80cc39..70518814 100644 --- a/lib/kennel/github_reporter.rb +++ b/lib/kennel/github_reporter.rb @@ -16,7 +16,9 @@ def initialize(token, ref: "HEAD") @token = token commit = Utils.capture_sh("git show #{ref}") @sha = commit[/^Merge: \S+ (\S+)/, 1] || commit[/\Acommit (\S+)/, 1] || raise("Unable to find commit") - @pr = commit[/^\s+.*\(#(\d+)\)/, 1] # from squash + @pr = + commit[/^\s+.*\(#(\d+)\)/, 1] || # from squash + commit[/^\s+Merge pull request #(\d+)/, 1] # from merge with unmodified commit message @repo_part = ENV["GITHUB_REPOSITORY"] || begin origin = ENV["PROJECT_REPOSITORY"] || Utils.capture_sh("git remote -v").split("\n").first origin[%r{github\.com[:/](\S+?)(\.git|$)}, 1] || raise("no origin found in #{origin}") diff --git a/test/kennel/github_reporter_test.rb b/test/kennel/github_reporter_test.rb index 3d66fa6a..a13d2d3a 100644 --- a/test/kennel/github_reporter_test.rb +++ b/test/kennel/github_reporter_test.rb @@ -58,13 +58,20 @@ reporter.instance_variable_get(:@repo_part).must_equal "foo/bar" end - it "can create PR comments" do + it "can create PR comments for squash" do show_response << "\n foo (#123)" request = stub_request(:post, "https://api.github.com/repos/foo/bar/issues/123/comments").to_return(status: 201) Kennel::Console.capture_stdout { reporter.report { Kennel.out.puts "HEY" } } assert_requested request end + it "can create PR comments for merge" do + show_response << "\n Merge pull request #123" + request = stub_request(:post, "https://api.github.com/repos/foo/bar/issues/123/comments").to_return(status: 201) + Kennel::Console.capture_stdout { reporter.report { Kennel.out.puts "HEY" } } + assert_requested request + end + it "can create merge comments" do show_response.replace "commit: nope\nMerge: foo abcd" request = stub_request(:post, "https://api.github.com/repos/foo/bar/commits/abcd/comments").to_return(status: 201)