add ability to disable milestones filtering

This commit is contained in:
Petr Korolev
2014-12-22 15:41:20 +02:00
parent 5304e4faf8
commit 657ce0e838
3 changed files with 39 additions and 36 deletions
+31 -29
View File
@@ -244,39 +244,41 @@ module GitHubChangelogGenerator
end
#delete excess irrelevant issues (according milestones)
filtered_issues.select!{ |issue|
if issue.milestone.nil?
true
else
#check, that this milestone in tag list:
milestone_is_tag = @all_tags.find{|tag|
tag.name == issue.milestone.title
}
milestone_is_tag.nil?
end
if @options[:filter_issues_by_milestone]
#delete excess irrelevant issues (according milestones)
filtered_issues.select! { |issue|
if issue.milestone.nil?
true
else
#check, that this milestone in tag list:
milestone_is_tag = @all_tags.find { |tag|
tag.name == issue.milestone.title
}
milestone_is_tag.nil?
end
}
}
#add missed issues (according milestones)
issues_to_add = @issues.select{|issue|
if issue.milestone.nil?
false
else
#check, that this milestone in tag list:
milestone_is_tag = @all_tags.find{|tag|
tag.name == issue.milestone.title
}
if milestone_is_tag.nil?
#add missed issues (according milestones)
issues_to_add = @issues.select { |issue|
if issue.milestone.nil?
false
else
issue.milestone.title == newer_tag_name
end
end
}
#check, that this milestone in tag list:
milestone_is_tag = @all_tags.find { |tag|
tag.name == issue.milestone.title
}
filtered_issues |= issues_to_add
if milestone_is_tag.nil?
false
else
issue.milestone.title == newer_tag_name
end
end
}
filtered_issues |= issues_to_add
end
self.create_log(filtered_pull_requests, filtered_issues, newer_tag_name, newer_tag_time)
@@ -430,7 +432,7 @@ module GitHubChangelogGenerator
if @options[:add_issues_wo_labels]
issues_wo_labels = issues.select {
# add issues without any labels
|issue| !issue.labels.map { |label| label.name }.any?
|issue| !issue.labels.map { |label| label.name }.any?
}
filtered_issues.concat(issues_wo_labels)
end
+4 -1
View File
@@ -6,7 +6,7 @@ require_relative 'version'
module GitHubChangelogGenerator
class Parser
def self.parse_options
options = {:tag1 => nil, :tag2 => nil, :format => '%d/%m/%y', :output => 'CHANGELOG.md', :labels => %w(bug enhancement), :pulls => true, :issues => true, :verbose => true, :add_issues_wo_labels => true, :merge_prefix => '*Merged pull-request:* ', :author => true, :pull_request_labels => nil}
options = {:tag1 => nil, :tag2 => nil, :format => '%d/%m/%y', :output => 'CHANGELOG.md', :labels => %w(bug enhancement), :pulls => true, :issues => true, :verbose => true, :add_issues_wo_labels => true, :merge_prefix => '*Merged pull-request:* ', :author => true, :pull_request_labels => nil, :filter_issues_by_milestone => true}
parser = OptionParser.new { |opts|
opts.banner = 'Usage: changelog_generator [options]'
@@ -37,6 +37,9 @@ module GitHubChangelogGenerator
opts.on('--[no-]pull-requests', 'Include pull-requests to changelog. Default is true') do |v|
options[:pulls] = v
end
opts.on('--[no-]filter-issues-by-milestone', 'Use milestone to detect when issue was resolved. Default is true') do |last|
options[:filter_issues_by_milestone] = last
end
opts.on('--[no-]author', 'Add author of pull-request in the end. Default is true') do |author|
options[:last] = author
end