parent
62623ff2dd
commit
2691a3ef96
|
@ -1,7 +1,7 @@
|
|||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
github_changelog_generator (1.11.0)
|
||||
github_changelog_generator (1.10.1)
|
||||
colorize (~> 0.7)
|
||||
github_api (~> 0.12)
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ module GitHubChangelogGenerator
|
|||
def run
|
||||
log = @generator.compound_changelog
|
||||
|
||||
output_filename = (@options[:output]).to_s
|
||||
output_filename = "#{@options[:output]}"
|
||||
File.open(output_filename, "w") { |file| file.write(log) }
|
||||
puts "Done!"
|
||||
puts "Generated log placed in #{Dir.pwd}/#{output_filename}"
|
||||
|
|
|
@ -7,11 +7,11 @@ module GitHubChangelogGenerator
|
|||
|
||||
class Fetcher
|
||||
PER_PAGE_NUMBER = 30
|
||||
CHANGELOG_GITHUB_TOKEN = "CHANGELOG_GITHUB_TOKEN".freeze
|
||||
CHANGELOG_GITHUB_TOKEN = "CHANGELOG_GITHUB_TOKEN"
|
||||
GH_RATE_LIMIT_EXCEEDED_MSG = "Warning: Can't finish operation: GitHub API rate limit exceeded, change log may be " \
|
||||
"missing some issues. You can limit the number of issues fetched using the `--max-issues NUM` argument.".freeze
|
||||
"missing some issues. You can limit the number of issues fetched using the `--max-issues NUM` argument."
|
||||
NO_TOKEN_PROVIDED = "Warning: No token provided (-t option) and variable $CHANGELOG_GITHUB_TOKEN was not found. " \
|
||||
"This script can make only 50 requests to GitHub API per hour without token!".freeze
|
||||
"This script can make only 50 requests to GitHub API per hour without token!"
|
||||
|
||||
def initialize(options = {})
|
||||
@options = options || {}
|
||||
|
@ -123,16 +123,16 @@ Make sure, that you push tags to remote repo via 'git push --tags'".yellow
|
|||
def fetch_closed_pull_requests
|
||||
pull_requests = []
|
||||
begin
|
||||
response = if @options[:release_branch].nil?
|
||||
@github.pull_requests.list @options[:user],
|
||||
if @options[:release_branch].nil?
|
||||
response = @github.pull_requests.list @options[:user],
|
||||
@options[:project],
|
||||
state: "closed"
|
||||
else
|
||||
@github.pull_requests.list @options[:user],
|
||||
else
|
||||
response = @github.pull_requests.list @options[:user],
|
||||
@options[:project],
|
||||
state: "closed",
|
||||
base: @options[:release_branch]
|
||||
end
|
||||
end
|
||||
page_i = 0
|
||||
count_pages = response.count_pages
|
||||
response.each_page do |page|
|
||||
|
|
|
@ -12,11 +12,11 @@ module GitHubChangelogGenerator
|
|||
log += @options[:frontmatter] if @options[:frontmatter]
|
||||
log += "#{@options[:header]}\n\n"
|
||||
|
||||
log += if @options[:unreleased_only]
|
||||
generate_log_between_tags(filtered_tags[0], nil)
|
||||
else
|
||||
generate_log_for_all_tags
|
||||
end
|
||||
if @options[:unreleased_only]
|
||||
log += generate_log_between_tags(filtered_tags[0], nil)
|
||||
else
|
||||
log += generate_log_for_all_tags
|
||||
end
|
||||
|
||||
log += File.read(@options[:base]) if File.file?(@options[:base])
|
||||
|
||||
|
@ -39,10 +39,10 @@ module GitHubChangelogGenerator
|
|||
index2 = hash[tag2]
|
||||
log += generate_log_between_tags(all_tags[index1], all_tags[index2])
|
||||
else
|
||||
raise ChangelogGeneratorError, "Can't find tag #{tag2} -> exit".red
|
||||
fail ChangelogGeneratorError, "Can't find tag #{tag2} -> exit".red
|
||||
end
|
||||
else
|
||||
raise ChangelogGeneratorError, "Can't find tag #{tag1} -> exit".red
|
||||
fail ChangelogGeneratorError, "Can't find tag #{tag1} -> exit".red
|
||||
end
|
||||
log
|
||||
end
|
||||
|
@ -79,16 +79,16 @@ module GitHubChangelogGenerator
|
|||
time_string = newer_tag_time.strftime @options[:date_format]
|
||||
|
||||
# Generate tag name and link
|
||||
release_url = if @options[:release_url]
|
||||
format(@options[:release_url], newer_tag_link)
|
||||
else
|
||||
"#{project_url}/tree/#{newer_tag_link}"
|
||||
end
|
||||
log += if newer_tag_name.equal? @options[:unreleased_label]
|
||||
"## [#{newer_tag_name}](#{release_url})\n\n"
|
||||
else
|
||||
"## [#{newer_tag_name}](#{release_url}) (#{time_string})\n"
|
||||
end
|
||||
if @options[:release_url]
|
||||
release_url = format(@options[:release_url], newer_tag_link)
|
||||
else
|
||||
release_url = "#{project_url}/tree/#{newer_tag_link}"
|
||||
end
|
||||
if newer_tag_name.equal? @options[:unreleased_label]
|
||||
log += "## [#{newer_tag_name}](#{release_url})\n\n"
|
||||
else
|
||||
log += "## [#{newer_tag_name}](#{release_url}) (#{time_string})\n"
|
||||
end
|
||||
|
||||
if @options[:compare_link] && older_tag_link
|
||||
# Generate compare link
|
||||
|
@ -171,11 +171,11 @@ module GitHubChangelogGenerator
|
|||
|
||||
unless issue.pull_request.nil?
|
||||
if @options[:author]
|
||||
title_with_number += if issue.user.nil?
|
||||
" ({Null user})"
|
||||
else
|
||||
" ([#{issue.user.login}](#{issue.user.html_url}))"
|
||||
end
|
||||
if issue.user.nil?
|
||||
title_with_number += " ({Null user})"
|
||||
else
|
||||
title_with_number += " ([#{issue.user.login}](#{issue.user.html_url}))"
|
||||
end
|
||||
end
|
||||
end
|
||||
title_with_number
|
||||
|
|
|
@ -7,7 +7,7 @@ module GitHubChangelogGenerator
|
|||
unless @options[:exclude_labels].nil?
|
||||
issues = issues.select do |issue|
|
||||
var = issue.labels.map(&:name) & @options[:exclude_labels]
|
||||
!var.any?
|
||||
!(var).any?
|
||||
end
|
||||
end
|
||||
issues
|
||||
|
@ -83,7 +83,7 @@ module GitHubChangelogGenerator
|
|||
|
||||
tag_in_range_new = tag_older_new_tag?(newer_tag_time, time)
|
||||
|
||||
tag_in_range = tag_in_range_old && tag_in_range_new
|
||||
tag_in_range = (tag_in_range_old) && (tag_in_range_new)
|
||||
|
||||
tag_in_range
|
||||
else
|
||||
|
@ -93,20 +93,20 @@ module GitHubChangelogGenerator
|
|||
end
|
||||
|
||||
def tag_older_new_tag?(newer_tag_time, time)
|
||||
tag_in_range_new = if newer_tag_time.nil?
|
||||
true
|
||||
else
|
||||
time <= newer_tag_time
|
||||
end
|
||||
if newer_tag_time.nil?
|
||||
tag_in_range_new = true
|
||||
else
|
||||
tag_in_range_new = time <= newer_tag_time
|
||||
end
|
||||
tag_in_range_new
|
||||
end
|
||||
|
||||
def tag_newer_old_tag?(older_tag_time, t)
|
||||
tag_in_range_old = if older_tag_time.nil?
|
||||
true
|
||||
else
|
||||
t > older_tag_time
|
||||
end
|
||||
if older_tag_time.nil?
|
||||
tag_in_range_old = true
|
||||
else
|
||||
tag_in_range_old = t > older_tag_time
|
||||
end
|
||||
tag_in_range_old
|
||||
end
|
||||
|
||||
|
@ -133,7 +133,7 @@ module GitHubChangelogGenerator
|
|||
def filter_by_include_labels(issues)
|
||||
filtered_issues = @options[:include_labels].nil? ? issues : issues.select do |issue|
|
||||
labels = issue.labels.map(&:name) & @options[:include_labels]
|
||||
labels.any?
|
||||
(labels).any?
|
||||
end
|
||||
filtered_issues
|
||||
end
|
||||
|
|
|
@ -19,7 +19,7 @@ module GitHubChangelogGenerator
|
|||
# @param [Hash] tag_name name of the tag
|
||||
# @return [Time] time of specified tag
|
||||
def get_time_of_tag(tag_name)
|
||||
raise ChangelogGeneratorError, "tag_name is nil".red if tag_name.nil?
|
||||
fail ChangelogGeneratorError, "tag_name is nil".red if tag_name.nil?
|
||||
|
||||
name_of_tag = tag_name["name"]
|
||||
time_for_name = @tag_times_hash[name_of_tag]
|
||||
|
@ -80,11 +80,11 @@ module GitHubChangelogGenerator
|
|||
if tag
|
||||
if all_tags.map(&:name).include? tag
|
||||
idx = all_tags.index { |t| t.name == tag }
|
||||
filtered_tags = if idx > 0
|
||||
all_tags[0..idx - 1]
|
||||
else
|
||||
[]
|
||||
end
|
||||
if idx > 0
|
||||
filtered_tags = all_tags[0..idx - 1]
|
||||
else
|
||||
filtered_tags = []
|
||||
end
|
||||
else
|
||||
Helper.log.warn "Warning: can't find tag #{tag}, specified with --since-tag option."
|
||||
end
|
||||
|
@ -101,11 +101,11 @@ module GitHubChangelogGenerator
|
|||
if (all_tags.count > 0) && (all_tags.map(&:name).include? tag)
|
||||
idx = all_tags.index { |t| t.name == tag }
|
||||
last_index = all_tags.count - 1
|
||||
filtered_tags = if idx > 0 && idx < last_index
|
||||
all_tags[idx + 1..last_index]
|
||||
else
|
||||
[]
|
||||
end
|
||||
if idx > 0 && idx < last_index
|
||||
filtered_tags = all_tags[idx + 1..last_index]
|
||||
else
|
||||
filtered_tags = []
|
||||
end
|
||||
else
|
||||
Helper.log.warn "Warning: can't find tag #{tag}, specified with --due-tag option."
|
||||
end
|
||||
|
|
|
@ -3,14 +3,14 @@ module GitHubChangelogGenerator
|
|||
module Helper
|
||||
# @return true if the currently running program is a unit test
|
||||
def self.test?
|
||||
defined? SpecHelper
|
||||
defined?SpecHelper
|
||||
end
|
||||
|
||||
@log ||= if test?
|
||||
Logger.new(nil) # don't show any logs when running tests
|
||||
else
|
||||
Logger.new(STDOUT)
|
||||
end
|
||||
if test?
|
||||
@log ||= Logger.new(nil) # don't show any logs when running tests
|
||||
else
|
||||
@log ||= Logger.new(STDOUT)
|
||||
end
|
||||
@log.formatter = proc do |severity, _datetime, _progname, msg|
|
||||
string = "#{msg}\n"
|
||||
|
||||
|
|
|
@ -20,8 +20,8 @@ module GitHubChangelogGenerator
|
|||
|
||||
def parse_line!(line)
|
||||
key_sym, value = extract_pair(line)
|
||||
value = true if value =~ /^(true|t|yes|y|1)$/i
|
||||
value = false if value =~ /^(false|f|no|n|0)$/i
|
||||
value = true if value =~ (/^(true|t|yes|y|1)$/i)
|
||||
value = false if value =~ (/^(false|f|no|n|0)$/i)
|
||||
@options[key_sym] = value
|
||||
rescue
|
||||
raise ParserError, "Config file #{file} is incorrect in line \"#{line.gsub(/[\n\r]+/, '')}\""
|
||||
|
|
|
@ -17,7 +17,7 @@ module GitHubChangelogGenerator
|
|||
between_tags exclude_tags since_tag max_issues
|
||||
github_site github_endpoint simple_list
|
||||
future_release release_branch verbose release_url
|
||||
base ).freeze
|
||||
base )
|
||||
|
||||
OPTIONS.each do |o|
|
||||
attr_accessor o.to_sym
|
||||
|
@ -37,7 +37,7 @@ module GitHubChangelogGenerator
|
|||
def define(args, &task_block)
|
||||
desc "Generate a Change log from GitHub"
|
||||
|
||||
yield(*[self, args].slice(0, task_block.arity)) if task_block
|
||||
task_block.call(*[self, args].slice(0, task_block.arity)) if task_block
|
||||
|
||||
# clear any (auto-)pre-existing task
|
||||
Rake::Task[@name].clear if Rake::Task.task_defined?(@name)
|
||||
|
@ -57,7 +57,7 @@ module GitHubChangelogGenerator
|
|||
|
||||
log = generator.compound_changelog
|
||||
|
||||
output_filename = (options[:output]).to_s
|
||||
output_filename = "#{options[:output]}"
|
||||
File.open(output_filename, "w") { |file| file.write(log) }
|
||||
puts "Done!"
|
||||
puts "Generated log placed in #{Dir.pwd}/#{output_filename}"
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
module GitHubChangelogGenerator
|
||||
VERSION = "1.11.0".freeze
|
||||
VERSION = "1.10.1"
|
||||
end
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
VALID_TOKEN = "0123456789abcdef".freeze
|
||||
INVALID_TOKEN = "0000000000000000".freeze
|
||||
VALID_TOKEN = "0123456789abcdef"
|
||||
INVALID_TOKEN = "0000000000000000"
|
||||
|
||||
DEFAULT_OPTIONS = { user: "skywinder",
|
||||
project: "changelog_test" }.freeze
|
||||
project: "changelog_test" }
|
||||
|
||||
def options_with_invalid_token
|
||||
options = DEFAULT_OPTIONS
|
||||
|
|
Loading…
Reference in New Issue
Block a user