github_changelog_generator 1.13.2 → 1.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/github_changelog_generator.rb +6 -1
  4. data/lib/github_changelog_generator/generator/generator.rb +28 -28
  5. data/lib/github_changelog_generator/generator/generator_fetcher.rb +23 -20
  6. data/lib/github_changelog_generator/generator/generator_generation.rb +40 -53
  7. data/lib/github_changelog_generator/generator/generator_processor.rb +32 -22
  8. data/lib/github_changelog_generator/generator/generator_tags.rb +77 -46
  9. data/lib/github_changelog_generator/octo_fetcher.rb +363 -0
  10. data/lib/github_changelog_generator/options.rb +92 -0
  11. data/lib/github_changelog_generator/parser.rb +21 -5
  12. data/lib/github_changelog_generator/parser_file.rb +2 -2
  13. data/lib/github_changelog_generator/version.rb +1 -1
  14. data/man/git-generate-changelog.1 +44 -2
  15. data/man/git-generate-changelog.1.html +290 -0
  16. data/man/git-generate-changelog.md +29 -1
  17. data/spec/spec_helper.rb +21 -0
  18. data/spec/unit/generator/generator_processor_spec.rb +4 -4
  19. data/spec/unit/generator/generator_tags_spec.rb +43 -40
  20. data/spec/unit/octo_fetcher_spec.rb +528 -0
  21. data/spec/unit/options_spec.rb +42 -0
  22. data/spec/unit/reader_spec.rb +0 -4
  23. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_closed_issues_and_pr/when_API_call_is_valid.json +1 -0
  24. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_closed_issues_and_pr/when_API_call_is_valid/returns_issue_with_proper_key/values.json +1 -0
  25. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_closed_issues_and_pr/when_API_call_is_valid/returns_issues.json +1 -0
  26. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_closed_issues_and_pr/when_API_call_is_valid/returns_issues_with_labels.json +1 -0
  27. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_closed_issues_and_pr/when_API_call_is_valid/returns_pull_request_with_proper_key/values.json +1 -0
  28. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_closed_issues_and_pr/when_API_call_is_valid/returns_pull_requests_with_labels.json +1 -0
  29. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_closed_pull_requests/when_API_call_is_valid.json +1 -0
  30. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_closed_pull_requests/when_API_call_is_valid/returns_correct_pull_request_keys.json +1 -0
  31. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_closed_pull_requests/when_API_call_is_valid/returns_pull_requests.json +1 -0
  32. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_commit/when_API_call_is_valid.json +1 -0
  33. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_commit/when_API_call_is_valid/returns_commit.json +1 -0
  34. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_date_of_tag/when_API_call_is_valid.json +1 -0
  35. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_date_of_tag/when_API_call_is_valid/returns_date.json +1 -0
  36. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_events_async/when_API_call_is_valid.json +1 -0
  37. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_fetch_events_async/when_API_call_is_valid/populates_issues.json +1 -0
  38. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_github_fetch_tags/when_API_call_is_valid.json +1 -0
  39. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_github_fetch_tags/when_API_call_is_valid/should_return_tags.json +1 -0
  40. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_github_fetch_tags/when_API_call_is_valid/should_return_tags_count.json +1 -0
  41. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_github_fetch_tags/when_wrong_token_provided.json +1 -0
  42. data/spec/vcr/GitHubChangelogGenerator_OctoFetcher/_github_fetch_tags/when_wrong_token_provided/should_raise_Unauthorized_error.json +1 -0
  43. metadata +97 -12
  44. data/lib/CHANGELOG.md +0 -58
  45. data/lib/github_changelog_generator/fetcher.rb +0 -226
  46. data/spec/unit/fetcher_spec.rb +0 -60
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+ require "delegate"
3
+ module GitHubChangelogGenerator
4
+ class Options < SimpleDelegator
5
+ UnsupportedOptionError = Class.new(ArgumentError)
6
+
7
+ KNOWN_OPTIONS = [
8
+ :add_issues_wo_labels,
9
+ :add_pr_wo_labels,
10
+ :author,
11
+ :base,
12
+ :between_tags,
13
+ :bug_labels,
14
+ :bug_prefix,
15
+ :cache_file,
16
+ :cache_log,
17
+ :compare_link,
18
+ :date_format,
19
+ :due_tag,
20
+ :enhancement_labels,
21
+ :enhancement_prefix,
22
+ :exclude_labels,
23
+ :exclude_tags,
24
+ :exclude_tags_regex,
25
+ :filter_issues_by_milestone,
26
+ :frontmatter,
27
+ :future_release,
28
+ :git_remote,
29
+ :github_endpoint,
30
+ :github_site,
31
+ :header,
32
+ :http_cache,
33
+ :include_labels,
34
+ :issue_prefix,
35
+ :issue_line_labels,
36
+ :issues,
37
+ :max_issues,
38
+ :merge_prefix,
39
+ :output,
40
+ :project,
41
+ :pulls,
42
+ :release_branch,
43
+ :release_url,
44
+ :simple_list,
45
+ :since_tag,
46
+ :token,
47
+ :unreleased,
48
+ :unreleased_label,
49
+ :unreleased_only,
50
+ :user,
51
+ :usernames_as_github_logins,
52
+ :verbose
53
+ ]
54
+
55
+ THESE_ARE_DIFFERENT = [
56
+ :tag1,
57
+ :tag2
58
+ ]
59
+
60
+ def initialize(values)
61
+ super(values)
62
+ unsupported_options.any? && raise(UnsupportedOptionError, unsupported_options.inspect)
63
+ end
64
+
65
+ def []=(key, val)
66
+ supported_option?(key) || raise(UnsupportedOptionError, key.inspect)
67
+ values[key] = val
68
+ end
69
+
70
+ def to_hash
71
+ values
72
+ end
73
+
74
+ private
75
+
76
+ def values
77
+ __getobj__
78
+ end
79
+
80
+ def unsupported_options
81
+ values.keys - supported_options
82
+ end
83
+
84
+ def supported_option?(key)
85
+ supported_options.include?(key)
86
+ end
87
+
88
+ def supported_options
89
+ KNOWN_OPTIONS + THESE_ARE_DIFFERENT
90
+ end
91
+ end
92
+ end
@@ -42,7 +42,7 @@ module GitHubChangelogGenerator
42
42
 
43
43
  # setup parsing options
44
44
  def self.setup_parser(options)
45
- parser = OptionParser.new do |opts|
45
+ parser = OptionParser.new do |opts| # rubocop:disable Metrics/BlockLength
46
46
  opts.banner = "Usage: github_changelog_generator [options]"
47
47
  opts.on("-u", "--user [USER]", "Username of the owner of target GitHub repo") do |last|
48
48
  options[:user] = last
@@ -107,7 +107,7 @@ module GitHubChangelogGenerator
107
107
  opts.on("--[no-]unreleased", "Add to log unreleased closed issues. Default is true") do |v|
108
108
  options[:unreleased] = v
109
109
  end
110
- opts.on("--unreleased-label [label]", "Add to log unreleased closed issues. Default is true") do |v|
110
+ opts.on("--unreleased-label [label]", "Setup custom label for unreleased closed issues section. Default is \"**Unreleased:**\"") do |v|
111
111
  options[:unreleased_label] = v
112
112
  end
113
113
  opts.on("--[no-]compare-link", "Include compare link (Full Changelog) between older version and newer version. Default is true") do |v|
@@ -125,6 +125,9 @@ module GitHubChangelogGenerator
125
125
  opts.on("--enhancement-labels x,y,z", Array, 'Issues with the specified labels will be always added to "Implemented enhancements" section. Default is \'enhancement,Enhancement\'') do |list|
126
126
  options[:enhancement_labels] = list
127
127
  end
128
+ opts.on("--issue-line-labels x,y,z", Array, 'The specified labels will be shown in brackets next to each matching issue. Use "ALL" to show all labels. Default is [].') do |list|
129
+ options[:issue_line_labels] = list
130
+ end
128
131
  opts.on("--between-tags x,y,z", Array, "Change log will be filled only between specified tags") do |list|
129
132
  options[:between_tags] = list
130
133
  end
@@ -161,6 +164,15 @@ module GitHubChangelogGenerator
161
164
  opts.on("--release-branch [RELEASE-BRANCH]", "Limit pull requests to the release branch, such as master or release") do |release_branch|
162
165
  options[:release_branch] = release_branch
163
166
  end
167
+ opts.on("--[no-]http-cache", "Use HTTP Cache to cache Github API requests (useful for large repos) Default is true.") do |http_cache|
168
+ options[:http_cache] = http_cache
169
+ end
170
+ opts.on("--cache-file [CACHE-FILE]", "Filename to use for cache. Default is /tmp/github-changelog-http-cache") do |cache_file|
171
+ options[:cache_file] = cache_file
172
+ end
173
+ opts.on("--cache-log [CACHE-LOG]", "Filename to use for cache log. Default is /tmp/github-changelog-logger.log") do |cache_log|
174
+ options[:cache_log] = cache_log
175
+ end
164
176
  opts.on("--[no-]verbose", "Run verbosely. Default is true") do |v|
165
177
  options[:verbose] = v
166
178
  end
@@ -178,7 +190,7 @@ module GitHubChangelogGenerator
178
190
 
179
191
  # @return [Hash] Default options
180
192
  def self.default_options
181
- {
193
+ Options.new(
182
194
  tag1: nil,
183
195
  tag2: nil,
184
196
  date_format: "%Y-%m-%d",
@@ -196,6 +208,7 @@ module GitHubChangelogGenerator
196
208
  enhancement_labels: %w(enhancement Enhancement),
197
209
  bug_labels: %w(bug Bug),
198
210
  exclude_labels: %w(duplicate question invalid wontfix Duplicate Question Invalid Wontfix),
211
+ issue_line_labels: [],
199
212
  max_issues: nil,
200
213
  simple_list: false,
201
214
  verbose: true,
@@ -204,8 +217,11 @@ module GitHubChangelogGenerator
204
217
  issue_prefix: "**Closed issues:**",
205
218
  bug_prefix: "**Fixed bugs:**",
206
219
  enhancement_prefix: "**Implemented enhancements:**",
207
- git_remote: "origin"
208
- }
220
+ git_remote: "origin",
221
+ http_cache: true,
222
+ cache_file: "/tmp/github-changelog-http-cache",
223
+ cache_log: "/tmp/github-changelog-logger.log"
224
+ )
209
225
  end
210
226
 
211
227
  # If `:user` or `:project` not set in options, try setting them
@@ -62,11 +62,11 @@ module GitHubChangelogGenerator
62
62
  # @return [Array<Symbol, String>]
63
63
  def extract_pair(line)
64
64
  key, value = line.split("=", 2)
65
- [key.sub("-", "_").to_sym, value.gsub(/[\n\r]+/, "")]
65
+ [key.tr("-", "_").to_sym, value.gsub(/[\n\r]+/, "")]
66
66
  end
67
67
 
68
68
  KNOWN_ARRAY_KEYS = [:exclude_labels, :include_labels, :bug_labels,
69
- :enhancement_labels, :between_tags, :exclude_tags]
69
+ :enhancement_labels, :issue_line_labels, :between_tags, :exclude_tags]
70
70
  KNOWN_INTEGER_KEYS = [:max_issues]
71
71
 
72
72
  def convert_value(value, option_name)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module GitHubChangelogGenerator
3
- VERSION = "1.13.2"
3
+ VERSION = "1.14.0"
4
4
  end
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "GIT\-GENERATE\-CHANGELOG" "1" "October 2015" "" ""
4
+ .TH "GIT\-GENERATE\-CHANGELOG" "1" "November 2016" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBgit\-generate\-changelog\fR \- Generate changelog from github
@@ -73,6 +73,12 @@ Setup custom label for closed\-issues section\. Default is "\fBClosed issues:\fR
73
73
  Setup custom header label\. Default is "# Change Log"
74
74
  .
75
75
  .P
76
+ \-\-front\-matter [JSON]
77
+ .
78
+ .P
79
+ Add YAML front matter\. Formatted as JSON because it\'s easier to add on the command line
80
+ .
81
+ .P
76
82
  \-\-pr\-label [LABEL]
77
83
  .
78
84
  .P
@@ -115,6 +121,12 @@ Use milestone to detect when issue was resolved\. Default is true
115
121
  Add author of pull\-request in the end\. Default is true
116
122
  .
117
123
  .P
124
+ \-\-usernames\-as\-github\-logins
125
+ .
126
+ .P
127
+ Use GitHub tags instead of Markdown links for the author of an issue or pull\-request\.
128
+ .
129
+ .P
118
130
  \-\-unreleased\-only
119
131
  .
120
132
  .P
@@ -130,7 +142,7 @@ Add to log unreleased closed issues\. Default is true
130
142
  \-\-unreleased\-label [label]
131
143
  .
132
144
  .P
133
- Add to log unreleased closed issues\. Default is true
145
+ Setup custom label for unreleased closed issues section\. Default is "\fBUnreleased:\fR"
134
146
  .
135
147
  .P
136
148
  \-\-[no\-]compare\-link
@@ -175,6 +187,12 @@ Change log will be filled only between specified tags
175
187
  Change log will exclude specified tags
176
188
  .
177
189
  .P
190
+ \-\-exclude\-tags\-regex [REGEX]
191
+ .
192
+ .P
193
+ Apply a regular expression on tag names so that they can be excluded, for example: \-\-exclude\-tags\-regex "\.*+\ed{1,}"
194
+ .
195
+ .P
178
196
  \-\-since\-tag x
179
197
  .
180
198
  .P
@@ -223,6 +241,30 @@ Create simple list from issues and pull requests\. Default is false\.
223
241
  Put the unreleased changes in the specified release number\.
224
242
  .
225
243
  .P
244
+ \-\-release\-branch [RELEASE\-BRANCH]
245
+ .
246
+ .P
247
+ Limit pull requests to the release branch, such as master or release
248
+ .
249
+ .P
250
+ \-\-http\-cache
251
+ .
252
+ .P
253
+ Use HTTP Cache to cache Github API requests (useful for large repos) Default is true\.
254
+ .
255
+ .P
256
+ \-\-[no\-]cache\-file [CACHE\-FILE]
257
+ .
258
+ .P
259
+ Filename to use for cache\. Default is /tmp/github\-changelog\-http\-cache
260
+ .
261
+ .P
262
+ \-\-cache\-log [CACHE\-LOG]
263
+ .
264
+ .P
265
+ Filename to use for cache log\. Default is /tmp/github\-changelog\-logger\.log
266
+ .
267
+ .P
226
268
  \-\-[no\-]verbose
227
269
  .
228
270
  .P
@@ -0,0 +1,290 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>git-generate-changelog(1) - Generate changelog from github</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#OPTIONS">OPTIONS</a>
60
+ <a href="#EXAMPLES">EXAMPLES</a>
61
+ <a href="#AUTHOR">AUTHOR</a>
62
+ <a href="#REPORTING-BUGS">REPORTING BUGS</a>
63
+ <a href="#SEE-ALSO">SEE ALSO</a>
64
+ </div>
65
+
66
+ <ol class='man-decor man-head man head'>
67
+ <li class='tl'>git-generate-changelog(1)</li>
68
+ <li class='tc'></li>
69
+ <li class='tr'>git-generate-changelog(1)</li>
70
+ </ol>
71
+
72
+ <h2 id="NAME">NAME</h2>
73
+ <p class="man-name">
74
+ <code>git-generate-changelog</code> - <span class="man-whatis">Generate changelog from github</span>
75
+ </p>
76
+
77
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
78
+
79
+ <p><code>git generate-changelog</code> [-h|--help] [-u|--user] [-p|--project]</p>
80
+
81
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
82
+
83
+ <p>Automatically generate change log from your tags, issues, labels and pull requests on GitHub.</p>
84
+
85
+ <h2 id="OPTIONS">OPTIONS</h2>
86
+
87
+ <p> -u, --user [USER]</p>
88
+
89
+ <p> Username of the owner of target GitHub repo</p>
90
+
91
+ <p> -p, --project [PROJECT]</p>
92
+
93
+ <p> Name of project on GitHub</p>
94
+
95
+ <p> -t, --token [TOKEN]</p>
96
+
97
+ <p> To make more than 50 requests per hour your GitHub token is required. You can generate it at: https://github.com/settings/tokens/new</p>
98
+
99
+ <p> -f, --date-format [FORMAT]</p>
100
+
101
+ <p> Date format. Default is %Y-%m-%d</p>
102
+
103
+ <p> -o, --output [NAME]</p>
104
+
105
+ <p> Output file. Default is CHANGELOG.md</p>
106
+
107
+ <p> -b, --base [NAME]</p>
108
+
109
+ <p> Optional base file to append generated changes to.</p>
110
+
111
+ <p> --bugs-label [LABEL]</p>
112
+
113
+ <p> Setup custom label for bug-fixes section. Default is "<strong>Fixed bugs:</strong></p>
114
+
115
+ <p> --enhancement-label [LABEL]</p>
116
+
117
+ <p> Setup custom label for enhancements section. Default is "<strong>Implemented enhancements:</strong>"</p>
118
+
119
+ <p> --issues-label [LABEL]</p>
120
+
121
+ <p> Setup custom label for closed-issues section. Default is "<strong>Closed issues:</strong>"</p>
122
+
123
+ <p> --header-label [LABEL]</p>
124
+
125
+ <p> Setup custom header label. Default is "# Change Log"</p>
126
+
127
+ <p> --front-matter [JSON]</p>
128
+
129
+ <p> Add YAML front matter. Formatted as JSON because it's easier to add on the command line</p>
130
+
131
+ <p> --pr-label [LABEL]</p>
132
+
133
+ <p> Setup custom label for pull requests section. Default is "<strong>Merged pull requests:</strong>"</p>
134
+
135
+ <p> --[no-]issues</p>
136
+
137
+ <p> Include closed issues in changelog. Default is true</p>
138
+
139
+ <p> --[no-]issues-wo-labels</p>
140
+
141
+ <p> Include closed issues without labels in changelog. Default is true</p>
142
+
143
+ <p> --[no-]pr-wo-labels</p>
144
+
145
+ <p> Include pull requests without labels in changelog. Default is true</p>
146
+
147
+ <p> --[no-]pull-requests</p>
148
+
149
+ <p> Include pull-requests in changelog. Default is true</p>
150
+
151
+ <p> --[no-]filter-by-milestone</p>
152
+
153
+ <p> Use milestone to detect when issue was resolved. Default is true</p>
154
+
155
+ <p> --[no-]author</p>
156
+
157
+ <p> Add author of pull-request in the end. Default is true</p>
158
+
159
+ <p> --usernames-as-github-logins</p>
160
+
161
+ <p> Use GitHub tags instead of Markdown links for the author of an issue or pull-request.</p>
162
+
163
+ <p> --unreleased-only</p>
164
+
165
+ <p> Generate log from unreleased closed issues only.</p>
166
+
167
+ <p> --[no-]unreleased</p>
168
+
169
+ <p> Add to log unreleased closed issues. Default is true</p>
170
+
171
+ <p> --unreleased-label [label]</p>
172
+
173
+ <p> Setup custom label for unreleased closed issues section. Default is "<strong>Unreleased:</strong>"</p>
174
+
175
+ <p> --[no-]compare-link</p>
176
+
177
+ <p> Include compare link (Full Changelog) between older version and newer version. Default is true</p>
178
+
179
+ <p> --include-labels x,y,z</p>
180
+
181
+ <p> Only issues with the specified labels will be included in the changelog.</p>
182
+
183
+ <p> --exclude-labels x,y,z</p>
184
+
185
+ <p> Issues with the specified labels will be always excluded from changelog. Default is 'duplicate,question,invalid,wontfix'</p>
186
+
187
+ <p> --bug-labels x,y,z</p>
188
+
189
+ <p> Issues with the specified labels will be always added to "Fixed bugs" section. Default is 'bug,Bug'</p>
190
+
191
+ <p> --enhancement-labels x,y,z</p>
192
+
193
+ <p> Issues with the specified labels will be always added to "Implemented enhancements" section. Default is 'enhancement,Enhancement'</p>
194
+
195
+ <p> --between-tags x,y,z</p>
196
+
197
+ <p> Change log will be filled only between specified tags</p>
198
+
199
+ <p> --exclude-tags x,y,z</p>
200
+
201
+ <p> Change log will exclude specified tags</p>
202
+
203
+ <p> --exclude-tags-regex [REGEX]</p>
204
+
205
+ <p> Apply a regular expression on tag names so that they can be excluded, for example: --exclude-tags-regex ".*+\d{1,}"</p>
206
+
207
+ <p> --since-tag x</p>
208
+
209
+ <p> Change log will start after specified tag</p>
210
+
211
+ <p> --due-tag x</p>
212
+
213
+ <p> Change log will end before specified tag</p>
214
+
215
+ <p> --max-issues [NUMBER]</p>
216
+
217
+ <p> Max number of issues to fetch from GitHub. Default is unlimited</p>
218
+
219
+ <p> --release-url [URL]</p>
220
+
221
+ <p> The URL to point to for release links, in printf format (with the tag as variable).</p>
222
+
223
+ <p> --github-site [URL]</p>
224
+
225
+ <p> The Enterprise Github site on which your project is hosted.</p>
226
+
227
+ <p> --github-api [URL]</p>
228
+
229
+ <p> The enterprise endpoint to use for your Github API.</p>
230
+
231
+ <p> --simple-list</p>
232
+
233
+ <p> Create simple list from issues and pull requests. Default is false.</p>
234
+
235
+ <p> --future-release [RELEASE-VERSION]</p>
236
+
237
+ <p> Put the unreleased changes in the specified release number.</p>
238
+
239
+ <p> --release-branch [RELEASE-BRANCH]</p>
240
+
241
+ <p> Limit pull requests to the release branch, such as master or release</p>
242
+
243
+ <p> --http-cache</p>
244
+
245
+ <p> Use HTTP Cache to cache Github API requests (useful for large repos) Default is true.</p>
246
+
247
+ <p> --[no-]cache-file [CACHE-FILE]</p>
248
+
249
+ <p> Filename to use for cache. Default is /tmp/github-changelog-http-cache</p>
250
+
251
+ <p> --cache-log [CACHE-LOG]</p>
252
+
253
+ <p> Filename to use for cache log. Default is /tmp/github-changelog-logger.log</p>
254
+
255
+ <p> --[no-]verbose</p>
256
+
257
+ <p> Run verbosely. Default is true</p>
258
+
259
+ <p> -v, --version</p>
260
+
261
+ <p> Print version number</p>
262
+
263
+ <p> -h, --help</p>
264
+
265
+ <p> Displays Help</p>
266
+
267
+ <h2 id="EXAMPLES">EXAMPLES</h2>
268
+
269
+ <h2 id="AUTHOR">AUTHOR</h2>
270
+
271
+ <p>Written by Petr Korolev sky4winder@gmail.com</p>
272
+
273
+ <h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
274
+
275
+ <p>&lt;<a href="https://github.com/skywinder/github-changelog-generator/issues" data-bare-link="true">https://github.com/skywinder/github-changelog-generator/issues</a>&gt;</p>
276
+
277
+ <h2 id="SEE-ALSO">SEE ALSO</h2>
278
+
279
+ <p>&lt;<a href="https://github.com/skywinder/github-changelog-generator/" data-bare-link="true">https://github.com/skywinder/github-changelog-generator/</a>&gt;</p>
280
+
281
+
282
+ <ol class='man-decor man-foot man foot'>
283
+ <li class='tl'></li>
284
+ <li class='tc'>November 2016</li>
285
+ <li class='tr'>git-generate-changelog(1)</li>
286
+ </ol>
287
+
288
+ </div>
289
+ </body>
290
+ </html>