github_changelog_generator 1.2.4 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 202f122f1d16c0c0ffb31c835611647ea0090a66
|
4
|
+
data.tar.gz: eff1192c30c02b2b72bc2f22449510ed2c6c0bf2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb81c3164e100a0cf9c073c08ceb14d1b8e33d27b4ece4e693f8d7b60681c3b78c561d91b37c35c8003711a2d76cf200e28dd6ad9f7444eed00ab4221614a869
|
7
|
+
data.tar.gz: 6e153f5835447b3fd689ac157789bef00b2e2686b4cc8b320709da71c1fac7b68522b65cb010e91fbd0cdc88186289f2fa0646af27cfefa5aaf2fc585f25bce9
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [1.2.4] (https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.4)
|
4
|
+
#### 16/12/14
|
5
|
+
- *Merged pull-request:* Fix crash when user is NULL [\#40](https://github.com/skywinder/Github-Changelog-Generator/pull/40) ([skywinder](https://github.com/skywinder))
|
6
|
+
|
7
|
+
- *Merged pull-request:* Implement async fetching [\#39](https://github.com/skywinder/Github-Changelog-Generator/pull/39) ([skywinder](https://github.com/skywinder))
|
8
|
+
|
9
|
+
- *Implemented enhancement:* Add ability to run with one parameter instead -u -p [\#38](https://github.com/skywinder/Github-Changelog-Generator/issues/38)
|
10
|
+
|
11
|
+
- *Implemented enhancement:* Detailed output [\#33](https://github.com/skywinder/Github-Changelog-Generator/issues/33)
|
12
|
+
|
13
|
+
- *Fixed bug:* Docs lacking or basic behavior not as advertised [\#30](https://github.com/skywinder/Github-Changelog-Generator/issues/30)
|
14
|
+
|
15
|
+
## [1.2.3] (https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.3)
|
16
|
+
#### 16/12/14
|
17
|
+
- *Fixed bug:* Encapsulate \[ \> \* \_ \ \] signs in issues names [\#34](https://github.com/skywinder/Github-Changelog-Generator/issues/34)
|
18
|
+
|
3
19
|
## [1.2.2] (https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.2)
|
4
20
|
#### 10/12/14
|
5
21
|
- *Merged pull-request:* Add a Bitdeli Badge to README [\#36](https://github.com/skywinder/Github-Changelog-Generator/pull/36) ([bitdeli-chef](https://github.com/bitdeli-chef))
|
@@ -28,12 +28,12 @@ module GitHubChangelogGenerator
|
|
28
28
|
|
29
29
|
github_token
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
31
|
+
github_options = {per_page: PER_PAGE_NUMBER}
|
32
|
+
github_options[:oauth_token] = @github_token unless @github_token.nil?
|
33
|
+
github_options[:endpoint] = options[:github_endpoint] unless options[:github_endpoint].nil?
|
34
|
+
github_options[:site] = options[:github_endpoint] unless options[:github_site].nil?
|
35
|
+
|
36
|
+
@github = Github.new github_options
|
37
37
|
|
38
38
|
@generator = Generator.new(@options)
|
39
39
|
|
@@ -231,6 +231,11 @@ module GitHubChangelogGenerator
|
|
231
231
|
|
232
232
|
def generate_log_between_tags(older_tag, newer_tag)
|
233
233
|
|
234
|
+
if newer_tag.nil?
|
235
|
+
puts "Can't find tag -> terminate"
|
236
|
+
exit 1
|
237
|
+
end
|
238
|
+
|
234
239
|
newer_tag_time = self.get_time_of_tag(newer_tag)
|
235
240
|
newer_tag_name = newer_tag['name']
|
236
241
|
|
@@ -243,6 +248,43 @@ module GitHubChangelogGenerator
|
|
243
248
|
filtered_issues = delete_by_time(@issues, :closed_at, newer_tag_time, older_tag_time)
|
244
249
|
end
|
245
250
|
|
251
|
+
|
252
|
+
if @options[:filter_issues_by_milestone]
|
253
|
+
#delete excess irrelevant issues (according milestones)
|
254
|
+
filtered_issues.select! { |issue|
|
255
|
+
if issue.milestone.nil?
|
256
|
+
true
|
257
|
+
else
|
258
|
+
#check, that this milestone in tag list:
|
259
|
+
milestone_is_tag = @all_tags.find { |tag|
|
260
|
+
tag.name == issue.milestone.title
|
261
|
+
}
|
262
|
+
milestone_is_tag.nil?
|
263
|
+
end
|
264
|
+
|
265
|
+
}
|
266
|
+
|
267
|
+
#add missed issues (according milestones)
|
268
|
+
issues_to_add = @issues.select { |issue|
|
269
|
+
if issue.milestone.nil?
|
270
|
+
false
|
271
|
+
else
|
272
|
+
#check, that this milestone in tag list:
|
273
|
+
milestone_is_tag = @all_tags.find { |tag|
|
274
|
+
tag.name == issue.milestone.title
|
275
|
+
}
|
276
|
+
|
277
|
+
if milestone_is_tag.nil?
|
278
|
+
false
|
279
|
+
else
|
280
|
+
issue.milestone.title == newer_tag_name
|
281
|
+
end
|
282
|
+
end
|
283
|
+
}
|
284
|
+
|
285
|
+
filtered_issues |= issues_to_add
|
286
|
+
end
|
287
|
+
|
246
288
|
self.create_log(filtered_pull_requests, filtered_issues, newer_tag_name, newer_tag_time)
|
247
289
|
|
248
290
|
end
|
@@ -276,8 +318,10 @@ module GitHubChangelogGenerator
|
|
276
318
|
# @return [String]
|
277
319
|
def create_log(pull_requests, issues, tag_name, tag_time)
|
278
320
|
|
321
|
+
github_site = options[:github_site] || 'https://github.com'
|
322
|
+
|
279
323
|
# Generate tag name and link
|
280
|
-
log = "## [#{tag_name}] (
|
324
|
+
log = "## [#{tag_name}] (#{github_site}/#{@options[:user]}/#{@options[:project]}/tree/#{tag_name})\n"
|
281
325
|
|
282
326
|
#Generate date string:
|
283
327
|
time_string = tag_time.strftime @options[:format]
|
@@ -10,10 +10,10 @@ module GitHubChangelogGenerator
|
|
10
10
|
|
11
11
|
merge = "#{@options[:merge_prefix]}#{encapsulated_title} [\\##{pull_request[:number]}](#{pull_request.html_url})"
|
12
12
|
if @options[:author]
|
13
|
-
if
|
14
|
-
merge += " ([#{pull_request.user.login}](#{pull_request.user.html_url}))\n\n"
|
15
|
-
else
|
13
|
+
if pull_request.user.nil?
|
16
14
|
merge += " ({Null user})\n\n"
|
15
|
+
else
|
16
|
+
merge += " ([#{pull_request.user.login}](#{pull_request.user.html_url}))\n\n"
|
17
17
|
end
|
18
18
|
else
|
19
19
|
merge += "\n\n"
|
@@ -1,12 +1,12 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'optparse'
|
3
|
-
require '
|
3
|
+
require 'pp'
|
4
4
|
require_relative 'version'
|
5
5
|
|
6
6
|
module GitHubChangelogGenerator
|
7
7
|
class Parser
|
8
8
|
def self.parse_options
|
9
|
-
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}
|
9
|
+
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}
|
10
10
|
|
11
11
|
parser = OptionParser.new { |opts|
|
12
12
|
opts.banner = 'Usage: changelog_generator [options]'
|
@@ -37,6 +37,9 @@ module GitHubChangelogGenerator
|
|
37
37
|
opts.on('--[no-]pull-requests', 'Include pull-requests to changelog. Default is true') do |v|
|
38
38
|
options[:pulls] = v
|
39
39
|
end
|
40
|
+
opts.on('--[no-]filter-issues-by-milestone', 'Use milestone to detect when issue was resolved. Default is true') do |last|
|
41
|
+
options[:filter_issues_by_milestone] = last
|
42
|
+
end
|
40
43
|
opts.on('--[no-]author', 'Add author of pull-request in the end. Default is true') do |author|
|
41
44
|
options[:last] = author
|
42
45
|
end
|
@@ -46,6 +49,12 @@ module GitHubChangelogGenerator
|
|
46
49
|
opts.on('--labels-pr x,y,z', Array, 'Only pull requests with specified labels will be included to changelog. Default is nil') do |list|
|
47
50
|
options[:pull_request_labels] = list
|
48
51
|
end
|
52
|
+
opts.on('--github-site [URL]', 'The Enterprise Github site on which your project is hosted.') do |last|
|
53
|
+
options[:github_site] = last
|
54
|
+
end
|
55
|
+
opts.on('--github-api [URL]', 'The enterprise endpoint to use for your Github API.') do |last|
|
56
|
+
options[:github_endpoint] = last
|
57
|
+
end
|
49
58
|
opts.on('-v', '--version', 'Print version number') do |v|
|
50
59
|
puts "Version: #{GitHubChangelogGenerator::VERSION}"
|
51
60
|
exit
|
@@ -59,8 +68,9 @@ module GitHubChangelogGenerator
|
|
59
68
|
parser.parse!
|
60
69
|
|
61
70
|
if ARGV[0] && !ARGV[1]
|
71
|
+
github_site = options[:github_site] ? options[:github_site] : 'github.com'
|
62
72
|
# this match should parse https://github.com/skywinder/Github-Changelog-Generator and skywinder/Github-Changelog-Generator to user and name
|
63
|
-
match = /(
|
73
|
+
match = /(?:.+#{Regexp.escape(github_site)}\/)?(.+)\/(.+)/.match(ARGV[0])
|
64
74
|
|
65
75
|
if match[2].nil?
|
66
76
|
exit
|
@@ -94,4 +104,4 @@ module GitHubChangelogGenerator
|
|
94
104
|
options
|
95
105
|
end
|
96
106
|
end
|
97
|
-
end
|
107
|
+
end
|
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.2.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Petr Korolev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
107
|
version: '0'
|
108
108
|
requirements: []
|
109
109
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.4.
|
110
|
+
rubygems_version: 2.4.3
|
111
111
|
signing_key:
|
112
112
|
specification_version: 4
|
113
113
|
summary: Script, that automatically generate change-log from your tags and pull-requests.
|