github_changelog_generator 1.8.0 → 1.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +25 -0
- data/Gemfile.lock +7 -4
- data/README.md +2 -0
- data/lib/CHANGELOG.md +2 -0
- data/lib/github_changelog_generator/fetcher.rb +7 -4
- data/lib/github_changelog_generator/generator/generator.rb +25 -5
- data/lib/github_changelog_generator/generator/generator_fetcher.rb +2 -2
- data/lib/github_changelog_generator/generator/generator_generation.rb +2 -3
- data/lib/github_changelog_generator/generator/generator_processor.rb +6 -6
- data/lib/github_changelog_generator/generator/generator_tags.rb +5 -4
- data/lib/github_changelog_generator/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4045299c345bb4c35588ac19738c6a051e21492
|
4
|
+
data.tar.gz: 194f9175ddfa64ef9c20c22487a37a0883c03bfe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c838859c2aee00fb903f1a6b8862f13cd017fabdfb5b17f020d9ca570b49a289232b1c55788c4b10b80191aa67e113eebb347dc77e540dbc911cf09288e610c9
|
7
|
+
data.tar.gz: f5ceeae373fff4e8a85ea7fc2d95f4029ad72f67a5c59bc7aced2137059ec61f00ceb41c58f8f4a8c8778dd8181b7b04f520d1128401d439147dc9ab035612b6
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,30 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [Unreleased](https://github.com/skywinder/github-changelog-generator/tree/HEAD)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.8.0...HEAD)
|
6
|
+
|
7
|
+
**Merged pull requests:**
|
8
|
+
|
9
|
+
- Fix issue with missing events \(in case of events for issue \>30\) [\#268](https://github.com/skywinder/github-changelog-generator/pull/268) ([skywinder](https://github.com/skywinder))
|
10
|
+
- Use since\_tag as default for older\_tag [\#267](https://github.com/skywinder/github-changelog-generator/pull/267) ([raphink](https://github.com/raphink))
|
11
|
+
|
12
|
+
## [1.8.0](https://github.com/skywinder/github-changelog-generator/tree/1.8.0) (2015-08-24)
|
13
|
+
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.7.0...1.8.0)
|
14
|
+
|
15
|
+
**Implemented enhancements:**
|
16
|
+
|
17
|
+
- Generate change log since/due specific tag [\#254](https://github.com/skywinder/github-changelog-generator/issues/254)
|
18
|
+
|
19
|
+
**Merged pull requests:**
|
20
|
+
|
21
|
+
- Add `--due-tag` option [\#265](https://github.com/skywinder/github-changelog-generator/pull/265) ([skywinder](https://github.com/skywinder))
|
22
|
+
- Add release\_url to rake task options [\#264](https://github.com/skywinder/github-changelog-generator/pull/264) ([raphink](https://github.com/raphink))
|
23
|
+
- Add a rake task [\#260](https://github.com/skywinder/github-changelog-generator/pull/260) ([raphink](https://github.com/raphink))
|
24
|
+
- Add release\_url option [\#259](https://github.com/skywinder/github-changelog-generator/pull/259) ([raphink](https://github.com/raphink))
|
25
|
+
- Add --base option [\#258](https://github.com/skywinder/github-changelog-generator/pull/258) ([raphink](https://github.com/raphink))
|
26
|
+
- Add --since-tag [\#257](https://github.com/skywinder/github-changelog-generator/pull/257) ([raphink](https://github.com/raphink))
|
27
|
+
|
3
28
|
## [1.7.0](https://github.com/skywinder/github-changelog-generator/tree/1.7.0) (2015-07-16)
|
4
29
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.6.2...1.7.0)
|
5
30
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
github_changelog_generator (1.
|
4
|
+
github_changelog_generator (1.8.0)
|
5
5
|
colorize (~> 0.7)
|
6
6
|
github_api (~> 0.12)
|
7
7
|
|
@@ -29,13 +29,13 @@ GEM
|
|
29
29
|
unf (>= 0.0.5, < 1.0.0)
|
30
30
|
faraday (0.9.1)
|
31
31
|
multipart-post (>= 1.2, < 3)
|
32
|
-
github_api (0.12.
|
32
|
+
github_api (0.12.4)
|
33
33
|
addressable (~> 2.3)
|
34
34
|
descendants_tracker (~> 0.0.4)
|
35
35
|
faraday (~> 0.8, < 0.10)
|
36
|
-
hashie (>= 3.
|
36
|
+
hashie (>= 3.4)
|
37
37
|
multi_json (>= 1.7.5, < 2.0)
|
38
|
-
nokogiri (~> 1.6.
|
38
|
+
nokogiri (~> 1.6.6)
|
39
39
|
oauth2
|
40
40
|
hashie (3.4.2)
|
41
41
|
http-cookie (1.0.2)
|
@@ -112,3 +112,6 @@ DEPENDENCIES
|
|
112
112
|
rspec (~> 3.2)
|
113
113
|
rubocop (~> 0.31)
|
114
114
|
simplecov (~> 0.10)
|
115
|
+
|
116
|
+
BUNDLED WITH
|
117
|
+
1.10.6
|
data/README.md
CHANGED
@@ -211,6 +211,8 @@ If you're seeing this warning:
|
|
211
211
|
6. Create a new Pull Request
|
212
212
|
7. Profit! :white_check_mark:
|
213
213
|
|
214
|
+
*To test change log workflow you can use [test repo](https://github.com/skywinder/changelog_test/)*
|
215
|
+
|
214
216
|
## License
|
215
217
|
|
216
218
|
Github Changelog Generator is released under the [MIT License](http://www.opensource.org/licenses/MIT).
|
data/lib/CHANGELOG.md
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
**Implemented enhancements:**
|
8
8
|
|
9
9
|
- Enchancment [\#9](https://github.com/skywinder/changelog_test/issues/9)
|
10
|
+
- PR with enhancement label [\#16](https://github.com/skywinder/changelog_test/pull/16) ([skywinder](https://github.com/skywinder))
|
10
11
|
|
11
12
|
**Fixed bugs:**
|
12
13
|
|
@@ -21,6 +22,7 @@
|
|
21
22
|
|
22
23
|
**Merged pull requests:**
|
23
24
|
|
25
|
+
- This a PR with a lot of comments and events [\#17](https://github.com/skywinder/changelog_test/pull/17) ([skywinder](https://github.com/skywinder))
|
24
26
|
- This PR closes 14 from commit [\#15](https://github.com/skywinder/changelog_test/pull/15) ([skywinder](https://github.com/skywinder))
|
25
27
|
- This PR to close \#12 from body [\#13](https://github.com/skywinder/changelog_test/pull/13) ([skywinder](https://github.com/skywinder))
|
26
28
|
|
@@ -163,10 +163,13 @@ Make sure, that you push tags to remote repo via 'git push --tags'".yellow
|
|
163
163
|
issues_slice.each do |issue|
|
164
164
|
threads << Thread.new do
|
165
165
|
begin
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
issue[:events] =
|
166
|
+
response = @github.issues.events.list user: @options[:user],
|
167
|
+
repo: @options[:project],
|
168
|
+
issue_number: issue["number"]
|
169
|
+
issue[:events] = []
|
170
|
+
response.each_page do |page|
|
171
|
+
issue[:events].concat(page)
|
172
|
+
end
|
170
173
|
rescue
|
171
174
|
Helper.log.warn GH_RATE_LIMIT_EXCEEDED_MSG.yellow
|
172
175
|
end
|
@@ -66,7 +66,7 @@ module GitHubChangelogGenerator
|
|
66
66
|
|
67
67
|
if @options[:issues]
|
68
68
|
# Generate issues:
|
69
|
-
log += issues_to_log(issues)
|
69
|
+
log += issues_to_log(issues, pull_requests)
|
70
70
|
end
|
71
71
|
|
72
72
|
if @options[:pulls]
|
@@ -77,13 +77,14 @@ module GitHubChangelogGenerator
|
|
77
77
|
log
|
78
78
|
end
|
79
79
|
|
80
|
-
# Generate ready-to-paste log from list of issues.
|
80
|
+
# Generate ready-to-paste log from list of issues and pull requests.
|
81
81
|
#
|
82
82
|
# @param [Array] issues
|
83
|
+
# @param [Array] pull_requests
|
83
84
|
# @return [String] generated log for issues
|
84
|
-
def issues_to_log(issues)
|
85
|
+
def issues_to_log(issues, pull_requests)
|
85
86
|
log = ""
|
86
|
-
bugs_a, enhancement_a, issues_a = parse_by_sections(issues)
|
87
|
+
bugs_a, enhancement_a, issues_a = parse_by_sections(issues, pull_requests)
|
87
88
|
|
88
89
|
log += generate_sub_section(enhancement_a, @options[:enhancement_prefix])
|
89
90
|
log += generate_sub_section(bugs_a, @options[:bug_prefix])
|
@@ -95,8 +96,9 @@ module GitHubChangelogGenerator
|
|
95
96
|
# (bugs, features, or just closed issues) by labels
|
96
97
|
#
|
97
98
|
# @param [Array] issues
|
99
|
+
# @param [Array] pull_requests
|
98
100
|
# @return [Array] tuple of filtered arrays: (Bugs, Enhancements Issues)
|
99
|
-
def parse_by_sections(issues)
|
101
|
+
def parse_by_sections(issues, pull_requests)
|
100
102
|
issues_a = []
|
101
103
|
enhancement_a = []
|
102
104
|
bugs_a = []
|
@@ -117,6 +119,24 @@ module GitHubChangelogGenerator
|
|
117
119
|
end
|
118
120
|
issues_a.push dict unless added
|
119
121
|
end
|
122
|
+
|
123
|
+
pull_requests.each do |dict|
|
124
|
+
added = false
|
125
|
+
dict.labels.each do |label|
|
126
|
+
if @options[:bug_labels].include? label.name
|
127
|
+
bugs_a.push dict
|
128
|
+
added = true
|
129
|
+
next
|
130
|
+
end
|
131
|
+
if @options[:enhancement_labels].include? label.name
|
132
|
+
enhancement_a.push dict
|
133
|
+
added = true
|
134
|
+
next
|
135
|
+
end
|
136
|
+
end
|
137
|
+
pull_requests.delete(dict) if added
|
138
|
+
end
|
139
|
+
|
120
140
|
[bugs_a, enhancement_a, issues_a]
|
121
141
|
end
|
122
142
|
end
|
@@ -48,11 +48,11 @@ module GitHubChangelogGenerator
|
|
48
48
|
# Fill :actual_date parameter of specified issue by closed date of the commit, if it was closed by commit.
|
49
49
|
# @param [Hash] issue
|
50
50
|
def find_closed_date_by_commit(issue)
|
51
|
-
unless issue[
|
51
|
+
unless issue[:events].nil?
|
52
52
|
# if it's PR -> then find "merged event", in case of usual issue -> fond closed date
|
53
53
|
compare_string = issue[:merged_at].nil? ? "closed" : "merged"
|
54
54
|
# reverse! - to find latest closed event. (event goes in date order)
|
55
|
-
issue[
|
55
|
+
issue[:events].reverse!.each do |event|
|
56
56
|
if event[:event].eql? compare_string
|
57
57
|
set_date_from_event(event, issue)
|
58
58
|
break
|
@@ -51,9 +51,8 @@ module GitHubChangelogGenerator
|
|
51
51
|
def generate_sub_section(issues, prefix)
|
52
52
|
log = ""
|
53
53
|
|
54
|
-
log += "#{prefix}\n\n" if options[:simple_list] != true && issues.any?
|
55
|
-
|
56
54
|
if issues.any?
|
55
|
+
log += "#{prefix}\n\n" unless options[:simple_list]
|
57
56
|
issues.each do |issue|
|
58
57
|
merge_string = get_string_for_issue(issue)
|
59
58
|
log += "- #{merge_string}\n"
|
@@ -103,7 +102,7 @@ module GitHubChangelogGenerator
|
|
103
102
|
def generate_log_between_tags(older_tag, newer_tag)
|
104
103
|
filtered_issues, filtered_pull_requests = filter_issues_for_tags(newer_tag, older_tag)
|
105
104
|
|
106
|
-
older_tag_name = older_tag.nil? ?
|
105
|
+
older_tag_name = older_tag.nil? ? detect_since_tag : older_tag["name"]
|
107
106
|
|
108
107
|
if newer_tag.nil? && filtered_issues.empty? && filtered_pull_requests.empty?
|
109
108
|
# do not generate empty unreleased section
|
@@ -63,21 +63,21 @@ module GitHubChangelogGenerator
|
|
63
63
|
end
|
64
64
|
|
65
65
|
# Method filter issues, that belong only specified tag range
|
66
|
-
# @param [Array]
|
66
|
+
# @param [Array] issues issues to filter
|
67
67
|
# @param [Symbol] hash_key key of date value default is :actual_date
|
68
68
|
# @param [String] older_tag all issues before this tag date will be excluded. May be nil, if it's first tag
|
69
69
|
# @param [String] newer_tag all issue after this tag will be excluded. May be nil for unreleased section
|
70
70
|
# @return [Array] filtered issues
|
71
|
-
def delete_by_time(
|
71
|
+
def delete_by_time(issues, hash_key = :actual_date, older_tag = nil, newer_tag = nil)
|
72
72
|
# in case if not tags specified - return unchanged array
|
73
|
-
return
|
73
|
+
return issues if older_tag.nil? && newer_tag.nil?
|
74
74
|
|
75
75
|
newer_tag_time = newer_tag && get_time_of_tag(newer_tag)
|
76
76
|
older_tag_time = older_tag && get_time_of_tag(older_tag)
|
77
77
|
|
78
|
-
|
79
|
-
if
|
80
|
-
time = Time.parse(
|
78
|
+
issues.select do |issue|
|
79
|
+
if issue[hash_key]
|
80
|
+
time = Time.parse(issue[hash_key]).utc
|
81
81
|
|
82
82
|
tag_in_range_old = tag_newer_old_tag?(older_tag_time, time)
|
83
83
|
|
@@ -54,11 +54,13 @@ module GitHubChangelogGenerator
|
|
54
54
|
|
55
55
|
# @return [Object] try to find newest tag using #Reader and :base option if specified otherwise returns nil
|
56
56
|
def detect_since_tag
|
57
|
-
|
57
|
+
@since_tag ||= @options[:since_tag]
|
58
|
+
if @since_tag.nil? && @options[:base] && File.file?(@options[:base])
|
58
59
|
reader = GitHubChangelogGenerator::Reader.new
|
59
60
|
content = reader.read(@options[:base])
|
60
|
-
|
61
|
+
@since_tag = content[0]["version"] if content
|
61
62
|
end
|
63
|
+
@since_tag
|
62
64
|
end
|
63
65
|
|
64
66
|
# Return tags after filtering tags in lists provided by option: --between-tags & --exclude-tags
|
@@ -74,8 +76,7 @@ module GitHubChangelogGenerator
|
|
74
76
|
# @return [Array] filtered tags according :since_tag option
|
75
77
|
def filter_since_tag(all_tags)
|
76
78
|
filtered_tags = all_tags
|
77
|
-
tag =
|
78
|
-
tag ||= detect_since_tag
|
79
|
+
tag = detect_since_tag
|
79
80
|
if tag
|
80
81
|
if all_tags.map(&:name).include? tag
|
81
82
|
idx = all_tags.index { |t| t.name == tag }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github_changelog_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Petr Korolev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: github_api
|