Skip to content

Commit

Permalink
Merge pull request #11276 from scpeters/release_notes_fix_blank_link
Browse files Browse the repository at this point in the history
release_notes: append #PR to markdown link text
  • Loading branch information
MikeMcQuaid authored May 10, 2021
2 parents 05111c8 + f2c46d4 commit c92a40a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
9 changes: 7 additions & 2 deletions Library/Homebrew/release_notes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,13 @@ def generate_release_notes(start_ref, end_ref, markdown: false)
).lines.grep(/Merge pull request/)

log_output.map! do |s|
s.gsub(%r{.*Merge pull request #(\d+) from ([^/]+)/[^>]*(>>)*},
"https://github.com/Homebrew/brew/pull/\\1 (@\\2)")
matches = s.match(%r{.*Merge pull request #(?<pr>\d+) from (?<user>[^/]+)/[^>]*>> - (?<body>.*)})
body = if matches[:body].empty?
s.gsub(/.*(Merge pull request .*) >> - .*/, "\\1").chomp
else
matches[:body]
end
"https://github.com/Homebrew/brew/pull/#{matches[:pr]} (@#{matches[:user]}) - #{body}\n"
end

if markdown
Expand Down
4 changes: 4 additions & 0 deletions Library/Homebrew/test/release_notes_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,23 @@
system "git", "commit", "--allow-empty", "-m", "Merge pull request #1 from Homebrew/fix", "-m", "Do something"
system "git", "commit", "--allow-empty", "-m", "make a change"
system "git", "commit", "--allow-empty", "-m", "Merge pull request #2 from User/fix", "-m", "Do something else"
system "git", "commit", "--allow-empty", "-m", "another change"
system "git", "commit", "--allow-empty", "-m", "Merge pull request #3 from User/another_change"
end
end

describe ".generate_release_notes" do
it "generates release notes" do
expect(described_class.generate_release_notes("release-notes-testing", "HEAD")).to eq <<~NOTES
https://github.com/Homebrew/brew/pull/3 (@User) - Merge pull request #3 from User/another_change
https://github.com/Homebrew/brew/pull/2 (@User) - Do something else
https://github.com/Homebrew/brew/pull/1 (@Homebrew) - Do something
NOTES
end

it "generates markdown release notes" do
expect(described_class.generate_release_notes("release-notes-testing", "HEAD", markdown: true)).to eq <<~NOTES
- [Merge pull request #3 from User/another_change](https://github.com/Homebrew/brew/pull/3) (@User)
- [Do something else](https://github.com/Homebrew/brew/pull/2) (@User)
- [Do something](https://github.com/Homebrew/brew/pull/1) (@Homebrew)
NOTES
Expand Down

0 comments on commit c92a40a

Please sign in to comment.