Merge pull request #11569 from MikeMcQuaid/cleanup_release_notes
release_notes: refactor/cleanup.
This commit is contained in:
commit
4f33c2cbb4
@ -71,7 +71,7 @@ module Homebrew
|
|||||||
latest_major_minor_version = "#{latest_version.major}.#{latest_version.minor.to_i}.0"
|
latest_major_minor_version = "#{latest_version.major}.#{latest_version.minor.to_i}.0"
|
||||||
ohai "Release notes since #{latest_major_minor_version} for #{new_version} blog post:"
|
ohai "Release notes since #{latest_major_minor_version} for #{new_version} blog post:"
|
||||||
# release notes without username suffix or dependabot bumps
|
# release notes without username suffix or dependabot bumps
|
||||||
puts ReleaseNotes.generate_release_notes(latest_major_minor_version, "origin/HEAD", markdown: true)
|
puts ReleaseNotes.generate_release_notes(latest_major_minor_version, "origin/HEAD")
|
||||||
.lines
|
.lines
|
||||||
.reject { |l| l.include?(" (@Homebrew)") }
|
.reject { |l| l.include?(" (@Homebrew)") }
|
||||||
.map { |l| l.gsub(/ \(@[\w-]+\)$/, "") }
|
.map { |l| l.gsub(/ \(@[\w-]+\)$/, "") }
|
||||||
@ -85,7 +85,7 @@ module Homebrew
|
|||||||
else
|
else
|
||||||
""
|
""
|
||||||
end
|
end
|
||||||
release_notes += ReleaseNotes.generate_release_notes latest_version, "origin/HEAD", markdown: true
|
release_notes += ReleaseNotes.generate_release_notes latest_version, "origin/HEAD"
|
||||||
|
|
||||||
begin
|
begin
|
||||||
release = GitHub.create_or_update_release "Homebrew", "brew", new_version, body: release_notes, draft: true
|
release = GitHub.create_or_update_release "Homebrew", "brew", new_version, body: release_notes, draft: true
|
||||||
|
@ -14,27 +14,17 @@ module ReleaseNotes
|
|||||||
.returns(String)
|
.returns(String)
|
||||||
}
|
}
|
||||||
def generate_release_notes(start_ref, end_ref, markdown: false)
|
def generate_release_notes(start_ref, end_ref, markdown: false)
|
||||||
log_output = Utils.popen_read(
|
Utils.popen_read(
|
||||||
"git", "-C", HOMEBREW_REPOSITORY, "log", "--pretty=format:'%s >> - %b%n'", "#{start_ref}..#{end_ref}"
|
"git", "-C", HOMEBREW_REPOSITORY, "log", "--pretty=format:'%s >> - %b%n'", "#{start_ref}..#{end_ref}"
|
||||||
).lines.grep(/Merge pull request/)
|
).lines.map do |s|
|
||||||
|
|
||||||
log_output.map! do |s|
|
|
||||||
matches = s.match(%r{.*Merge pull request #(?<pr>\d+) from (?<user>[^/]+)/[^>]*>> - (?<body>.*)})
|
matches = s.match(%r{.*Merge pull request #(?<pr>\d+) from (?<user>[^/]+)/[^>]*>> - (?<body>.*)})
|
||||||
body = if matches[:body].empty?
|
next if matches.blank?
|
||||||
s.gsub(/.*(Merge pull request .*) >> - .*/, "\\1").chomp
|
next if matches[:user] == "Homebrew"
|
||||||
else
|
|
||||||
matches[:body]
|
|
||||||
end
|
|
||||||
"https://github.com/Homebrew/brew/pull/#{matches[:pr]} (@#{matches[:user]}) - #{body}\n"
|
|
||||||
end
|
|
||||||
|
|
||||||
if markdown
|
body = matches[:body].presence
|
||||||
log_output.map! do |s|
|
body ||= s.gsub(/.*(Merge pull request .*) >> - .*/, "\\1").chomp
|
||||||
/(.*\d)+ \(@(.+)\) - (.*)/ =~ s
|
|
||||||
"- [#{Regexp.last_match(3)}](#{Regexp.last_match(1)}) (@#{Regexp.last_match(2)})\n"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
log_output.join
|
"- [#{body}](https://github.com/Homebrew/brew/pull/#{matches[:pr]}) (@#{matches[:user]})\n"
|
||||||
|
end.compact.join
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -18,19 +18,10 @@ describe ReleaseNotes do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe ".generate_release_notes" do
|
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
|
it "generates markdown release notes" do
|
||||||
expect(described_class.generate_release_notes("release-notes-testing", "HEAD", markdown: true)).to eq <<~NOTES
|
expect(described_class.generate_release_notes("release-notes-testing", "HEAD")).to eq <<~NOTES
|
||||||
- [Merge pull request #3 from User/another_change](https://github.com/Homebrew/brew/pull/3) (@User)
|
- [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 else](https://github.com/Homebrew/brew/pull/2) (@User)
|
||||||
- [Do something](https://github.com/Homebrew/brew/pull/1) (@Homebrew)
|
|
||||||
NOTES
|
NOTES
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user