class Releaser::ChangeLog
Attributes
commits[RW]
repo[RW]
tag[RW]
Public Class Methods
new(repo, tag, commits)
click to toggle source
# File lib/releaser.rb, line 9 def initialize(repo, tag, commits) @repo, @tag, @commits = repo, tag, commits end
Public Instance Methods
format()
click to toggle source
# File lib/releaser.rb, line 25 def format lines = ["Release #{name}: #{tag.time}"] lines << "\nTickets Resolved:" tickets.each do |t| lines << " * #{t} - #{jira_url}/browse/#{t}" end lines << "\nCommits:" commits.each do |c| author = c.author[:name] message = c.message.split("\n")[0] lines << " * [#{author}] #{message} (#{c.oid[0..8]})" end lines.join("\n") end
jira_prefix()
click to toggle source
# File lib/releaser.rb, line 17 def jira_prefix repo.repo.config['releaser.jira.prefix'] end
jira_url()
click to toggle source
# File lib/releaser.rb, line 21 def jira_url repo.repo.config['releaser.jira.url'] end
name()
click to toggle source
# File lib/releaser.rb, line 13 def name tag.name end
tickets()
click to toggle source
# File lib/releaser.rb, line 41 def tickets @tickets ||= Set.new(commits.flat_map { |c| c.message.match(/#{jira_prefix}-\d+/) { |m| m && m[0] } }.compact) end