redmine-backporter: Support matching multiple revs

with `done` command
This commit is contained in:
Takashi Kokubun 2024-09-02 02:25:28 -07:00
parent 7d47f3c94f
commit b6e7e903a0

View File

@ -353,14 +353,14 @@ eom
if rev && has_commit(rev, "ruby_#{TARGET_VERSION.tr('.','_')}")
notes = "ruby_#{TARGET_VERSION.tr('.','_')} commit:#{rev}."
elsif rev.nil? && (log = find_git_log("##@issue]")) && /^commit (?<rev>\h{40})$/ =~ log
str = log[/merge revision\(s\) ([^:]+)(?=:)/]
if str
str.sub!(/\Amerge/, 'merged')
str.gsub!(/\h{8,40}/, 'commit:\0')
str = "ruby_#{TARGET_VERSION.tr('.','_')} commit:#{rev} #{str}."
elsif rev.nil? && (log = find_git_log("##@issue]")) && !(revs = log.scan(/^commit (\h{40})$/).flatten).empty?
commits = revs.map { |rev| "commit:#{rev}" }.join(", ")
if merged_revs = log[/merge revision\(s\) ([^:]+)(?=:)/]
merged_revs.sub!(/\Amerge/, 'merged')
merged_revs.gsub!(/\h{8,40}/, 'commit:\0')
str = "ruby_#{TARGET_VERSION.tr('.','_')} #{commits} #{merged_revs}."
else
str = "ruby_#{TARGET_VERSION.tr('.','_')} commit:#{rev}."
str = "ruby_#{TARGET_VERSION.tr('.','_')} #{commits}."
end
if notes
str << "\n"