github_changelog_generator 1.7.0 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -70
- data/Gemfile.lock +1 -1
- data/README.md +215 -193
- data/lib/github_changelog_generator/generator/generator_generation.rb +9 -2
- data/lib/github_changelog_generator/generator/generator_tags.rb +57 -1
- data/lib/github_changelog_generator/parser.rb +17 -4
- data/lib/github_changelog_generator/task.rb +68 -0
- data/lib/github_changelog_generator/version.rb +1 -1
- data/spec/unit/generator/generator_tags_spec.rb +68 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 14e8beb89ae2f1803f59aa8dc82b7ec4bab97861
|
4
|
+
data.tar.gz: 6002f6306a1532fc8ff36403923f34a6698e89fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ab2b56f72ca7a624bd626f2ffed3624139d44f36dea500172bc0b155037ee0327bd2bc0a6d597c0038608c7bcfd0bd03d0a64d53bb194eb73e9d1f9d64d4ba2
|
7
|
+
data.tar.gz: 3fd4f8006c2af2f89ee23838ecf81b618ef6107847340cef98fead5e0be4434944ea479a9aca503125a03bf3894aa7aa7043b9e8402e9888261ef3ad3f55fc0f
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,14 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [1.
|
3
|
+
## [1.7.0](https://github.com/skywinder/github-changelog-generator/tree/1.7.0) (2015-07-16)
|
4
|
+
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.6.2...1.7.0)
|
5
|
+
|
6
|
+
**Implemented enhancements:**
|
4
7
|
|
8
|
+
- Custom header [\#251](https://github.com/skywinder/github-changelog-generator/issues/251)
|
9
|
+
- Arbitrary templates [\#242](https://github.com/skywinder/github-changelog-generator/issues/242)
|
10
|
+
|
11
|
+
## [1.6.2](https://github.com/skywinder/github-changelog-generator/tree/1.6.2) (2015-07-16)
|
5
12
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.6.1...1.6.2)
|
6
13
|
|
7
14
|
**Fixed bugs:**
|
@@ -9,7 +16,6 @@
|
|
9
16
|
- --unreleased-only broken [\#250](https://github.com/skywinder/github-changelog-generator/issues/250)
|
10
17
|
|
11
18
|
## [1.6.1](https://github.com/skywinder/github-changelog-generator/tree/1.6.1) (2015-06-12)
|
12
|
-
|
13
19
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.6.0...1.6.1)
|
14
20
|
|
15
21
|
**Implemented enhancements:**
|
@@ -21,33 +27,26 @@
|
|
21
27
|
- not encapsulated character `\<` [\#249](https://github.com/skywinder/github-changelog-generator/issues/249)
|
22
28
|
|
23
29
|
## [1.6.0](https://github.com/skywinder/github-changelog-generator/tree/1.6.0) (2015-06-11)
|
24
|
-
|
25
30
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.5.0...1.6.0)
|
26
31
|
|
27
32
|
**Implemented enhancements:**
|
28
33
|
|
29
34
|
- Issues with any label except "bug", "enhancement" should not be excluded by default. [\#240](https://github.com/skywinder/github-changelog-generator/issues/240)
|
30
|
-
|
31
35
|
- Add ability to specify custom labels for enhancements & bugfixes [\#54](https://github.com/skywinder/github-changelog-generator/issues/54)
|
32
36
|
|
33
37
|
**Fixed bugs:**
|
34
38
|
|
35
39
|
- --user and --project options are broken [\#246](https://github.com/skywinder/github-changelog-generator/issues/246)
|
36
|
-
|
37
40
|
- Exclude and Include tags is broken [\#245](https://github.com/skywinder/github-changelog-generator/issues/245)
|
38
41
|
|
39
42
|
## [1.5.0](https://github.com/skywinder/github-changelog-generator/tree/1.5.0) (2015-05-26)
|
40
|
-
|
41
43
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.4.1...1.5.0)
|
42
44
|
|
43
45
|
**Implemented enhancements:**
|
44
46
|
|
45
47
|
- Show `Unreleased` section even when there is no tags in repo. [\#228](https://github.com/skywinder/github-changelog-generator/issues/228)
|
46
|
-
|
47
48
|
- Add option `--exclude-tags x,y,z` [\#214](https://github.com/skywinder/github-changelog-generator/issues/214)
|
48
|
-
|
49
49
|
- Generate change log between 2 specific tags [\#172](https://github.com/skywinder/github-changelog-generator/issues/172)
|
50
|
-
|
51
50
|
- Yanked releases support [\#53](https://github.com/skywinder/github-changelog-generator/issues/53)
|
52
51
|
|
53
52
|
**Merged pull requests:**
|
@@ -55,7 +54,6 @@
|
|
55
54
|
- Big refactoring [\#243](https://github.com/skywinder/github-changelog-generator/pull/243) ([skywinder](https://github.com/skywinder))
|
56
55
|
|
57
56
|
## [1.4.1](https://github.com/skywinder/github-changelog-generator/tree/1.4.1) (2015-05-19)
|
58
|
-
|
59
57
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.4.0...1.4.1)
|
60
58
|
|
61
59
|
**Implemented enhancements:**
|
@@ -65,27 +63,21 @@
|
|
65
63
|
**Fixed bugs:**
|
66
64
|
|
67
65
|
- github\_changelog\_generator.rb:220:in ``': No such file or directory - pwd \(Errno::ENOENT\) [\#237](https://github.com/skywinder/github-changelog-generator/issues/237)
|
68
|
-
|
69
66
|
- Doesnot generator changelog [\#235](https://github.com/skywinder/github-changelog-generator/issues/235)
|
70
|
-
|
71
67
|
- Exclude closed \(not merged\) PR's from changelog. [\#69](https://github.com/skywinder/github-changelog-generator/issues/69)
|
72
68
|
|
73
69
|
**Merged pull requests:**
|
74
70
|
|
75
71
|
- Wrap GitHub requests in function check\_github\_response [\#238](https://github.com/skywinder/github-changelog-generator/pull/238) ([skywinder](https://github.com/skywinder))
|
76
|
-
|
77
72
|
- Add fetch token tests [\#236](https://github.com/skywinder/github-changelog-generator/pull/236) ([skywinder](https://github.com/skywinder))
|
78
|
-
|
79
73
|
- Add future release option [\#231](https://github.com/skywinder/github-changelog-generator/pull/231) ([sildur](https://github.com/sildur))
|
80
74
|
|
81
75
|
## [1.4.0](https://github.com/skywinder/github-changelog-generator/tree/1.4.0) (2015-05-07)
|
82
|
-
|
83
76
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.11...1.4.0)
|
84
77
|
|
85
78
|
**Implemented enhancements:**
|
86
79
|
|
87
80
|
- Parsing of existing Change Log file [\#212](https://github.com/skywinder/github-changelog-generator/issues/212)
|
88
|
-
|
89
81
|
- Warn users about 0 tags in repo. [\#208](https://github.com/skywinder/github-changelog-generator/issues/208)
|
90
82
|
|
91
83
|
**Closed issues:**
|
@@ -95,21 +87,14 @@
|
|
95
87
|
**Merged pull requests:**
|
96
88
|
|
97
89
|
- Implement fetcher class [\#227](https://github.com/skywinder/github-changelog-generator/pull/227) ([skywinder](https://github.com/skywinder))
|
98
|
-
|
99
90
|
- Add coveralls integration [\#223](https://github.com/skywinder/github-changelog-generator/pull/223) ([skywinder](https://github.com/skywinder))
|
100
|
-
|
101
91
|
- Cleanup [\#220](https://github.com/skywinder/github-changelog-generator/pull/220) ([tuexss](https://github.com/tuexss))
|
102
|
-
|
103
92
|
- Rspec & rubocop integration [\#217](https://github.com/skywinder/github-changelog-generator/pull/217) ([skywinder](https://github.com/skywinder))
|
104
|
-
|
105
93
|
- Implement Reader class to parse ChangeLog.md [\#216](https://github.com/skywinder/github-changelog-generator/pull/216) ([estahn](https://github.com/estahn))
|
106
|
-
|
107
94
|
- Relatively require github\_changelog\_generator library [\#207](https://github.com/skywinder/github-changelog-generator/pull/207) ([sneal](https://github.com/sneal))
|
108
|
-
|
109
95
|
- Add --max-issues argument to limit requests [\#76](https://github.com/skywinder/github-changelog-generator/pull/76) ([sneal](https://github.com/sneal))
|
110
96
|
|
111
97
|
## [1.3.11](https://github.com/skywinder/github-changelog-generator/tree/1.3.11) (2015-03-21)
|
112
|
-
|
113
98
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.10...1.3.11)
|
114
99
|
|
115
100
|
**Merged pull requests:**
|
@@ -117,7 +102,6 @@
|
|
117
102
|
- Add fallback with warning message to prevent crash in case of exceed API Rate Limit \(temporary workaround for \#71\) [\#75](https://github.com/skywinder/github-changelog-generator/pull/75) ([skywinder](https://github.com/skywinder))
|
118
103
|
|
119
104
|
## [1.3.10](https://github.com/skywinder/github-changelog-generator/tree/1.3.10) (2015-03-18)
|
120
|
-
|
121
105
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.9...1.3.10)
|
122
106
|
|
123
107
|
**Merged pull requests:**
|
@@ -125,7 +109,6 @@
|
|
125
109
|
- Fix termination in case of empty unreleased section with `--unreleased-only` option. [\#70](https://github.com/skywinder/github-changelog-generator/pull/70) ([skywinder](https://github.com/skywinder))
|
126
110
|
|
127
111
|
## [1.3.9](https://github.com/skywinder/github-changelog-generator/tree/1.3.9) (2015-03-06)
|
128
|
-
|
129
112
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.8...1.3.9)
|
130
113
|
|
131
114
|
**Implemented enhancements:**
|
@@ -137,15 +120,12 @@
|
|
137
120
|
- Resolved concurrency problem in case of issues \> 2048 [\#65](https://github.com/skywinder/github-changelog-generator/pull/65) ([skywinder](https://github.com/skywinder))
|
138
121
|
|
139
122
|
## [1.3.8](https://github.com/skywinder/github-changelog-generator/tree/1.3.8) (2015-03-05)
|
140
|
-
|
141
123
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.6...1.3.8)
|
142
124
|
|
143
125
|
## [1.3.6](https://github.com/skywinder/github-changelog-generator/tree/1.3.6) (2015-03-05)
|
144
|
-
|
145
126
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.5...1.3.6)
|
146
127
|
|
147
128
|
## [1.3.5](https://github.com/skywinder/github-changelog-generator/tree/1.3.5) (2015-03-04)
|
148
|
-
|
149
129
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.4...1.3.5)
|
150
130
|
|
151
131
|
**Fixed bugs:**
|
@@ -153,7 +133,6 @@
|
|
153
133
|
- Pull Requests in Wrong Tag [\#60](https://github.com/skywinder/github-changelog-generator/issues/60)
|
154
134
|
|
155
135
|
## [1.3.4](https://github.com/skywinder/github-changelog-generator/tree/1.3.4) (2015-03-03)
|
156
|
-
|
157
136
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.3...1.3.4)
|
158
137
|
|
159
138
|
**Fixed bugs:**
|
@@ -161,7 +140,6 @@
|
|
161
140
|
- --no-issues appears to break PRs [\#59](https://github.com/skywinder/github-changelog-generator/issues/59)
|
162
141
|
|
163
142
|
## [1.3.3](https://github.com/skywinder/github-changelog-generator/tree/1.3.3) (2015-03-03)
|
164
|
-
|
165
143
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.2...1.3.3)
|
166
144
|
|
167
145
|
**Closed issues:**
|
@@ -169,7 +147,6 @@
|
|
169
147
|
- Add \# character to encapsulate list. [\#58](https://github.com/skywinder/github-changelog-generator/issues/58)
|
170
148
|
|
171
149
|
## [1.3.2](https://github.com/skywinder/github-changelog-generator/tree/1.3.2) (2015-03-03)
|
172
|
-
|
173
150
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.1...1.3.2)
|
174
151
|
|
175
152
|
**Fixed bugs:**
|
@@ -177,21 +154,16 @@
|
|
177
154
|
- generation failed if github commit api return `404 Not Found` [\#57](https://github.com/skywinder/github-changelog-generator/issues/57)
|
178
155
|
|
179
156
|
## [1.3.1](https://github.com/skywinder/github-changelog-generator/tree/1.3.1) (2015-02-27)
|
180
|
-
|
181
157
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.0...1.3.1)
|
182
158
|
|
183
159
|
## [1.3.0](https://github.com/skywinder/github-changelog-generator/tree/1.3.0) (2015-02-26)
|
184
|
-
|
185
160
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.8...1.3.0)
|
186
161
|
|
187
162
|
**Implemented enhancements:**
|
188
163
|
|
189
164
|
- Do not show `Unreleased` section, when it's empty. [\#55](https://github.com/skywinder/github-changelog-generator/issues/55)
|
190
|
-
|
191
165
|
- Separate list exclude and include labels [\#52](https://github.com/skywinder/github-changelog-generator/issues/52)
|
192
|
-
|
193
166
|
- Unreleased issues in separate section [\#47](https://github.com/skywinder/github-changelog-generator/issues/47)
|
194
|
-
|
195
167
|
- Separate by lists: Enhancements, Bugs, Pull requests. [\#31](https://github.com/skywinder/github-changelog-generator/issues/31)
|
196
168
|
|
197
169
|
**Fixed bugs:**
|
@@ -203,7 +175,6 @@
|
|
203
175
|
- Implement filtering of Pull Requests by milestones [\#50](https://github.com/skywinder/github-changelog-generator/pull/50) ([skywinder](https://github.com/skywinder))
|
204
176
|
|
205
177
|
## [1.2.8](https://github.com/skywinder/github-changelog-generator/tree/1.2.8) (2015-02-17)
|
206
|
-
|
207
178
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.7...1.2.8)
|
208
179
|
|
209
180
|
**Closed issues:**
|
@@ -213,11 +184,9 @@
|
|
213
184
|
**Merged pull requests:**
|
214
185
|
|
215
186
|
- Feature/fix 37 [\#49](https://github.com/skywinder/github-changelog-generator/pull/49) ([skywinder](https://github.com/skywinder))
|
216
|
-
|
217
187
|
- Prettify output [\#48](https://github.com/skywinder/github-changelog-generator/pull/48) ([skywinder](https://github.com/skywinder))
|
218
188
|
|
219
189
|
## [1.2.7](https://github.com/skywinder/github-changelog-generator/tree/1.2.7) (2015-01-26)
|
220
|
-
|
221
190
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.6...1.2.7)
|
222
191
|
|
223
192
|
**Merged pull requests:**
|
@@ -225,7 +194,6 @@
|
|
225
194
|
- Add compare link between older version and newer version [\#46](https://github.com/skywinder/github-changelog-generator/pull/46) ([sue445](https://github.com/sue445))
|
226
195
|
|
227
196
|
## [1.2.6](https://github.com/skywinder/github-changelog-generator/tree/1.2.6) (2015-01-21)
|
228
|
-
|
229
197
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.5...1.2.6)
|
230
198
|
|
231
199
|
**Merged pull requests:**
|
@@ -233,7 +201,6 @@
|
|
233
201
|
- fix link tag format [\#45](https://github.com/skywinder/github-changelog-generator/pull/45) ([sugamasao](https://github.com/sugamasao))
|
234
202
|
|
235
203
|
## [1.2.5](https://github.com/skywinder/github-changelog-generator/tree/1.2.5) (2015-01-15)
|
236
|
-
|
237
204
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.4...1.2.5)
|
238
205
|
|
239
206
|
**Implemented enhancements:**
|
@@ -247,27 +214,22 @@
|
|
247
214
|
**Merged pull requests:**
|
248
215
|
|
249
216
|
- PrettyPrint class is included using lowercase 'pp' [\#43](https://github.com/skywinder/github-changelog-generator/pull/43) ([schwing](https://github.com/schwing))
|
250
|
-
|
251
217
|
- support enterprise github via command line options [\#42](https://github.com/skywinder/github-changelog-generator/pull/42) ([glenlovett](https://github.com/glenlovett))
|
252
218
|
|
253
219
|
## [1.2.4](https://github.com/skywinder/github-changelog-generator/tree/1.2.4) (2014-12-16)
|
254
|
-
|
255
220
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.3...1.2.4)
|
256
221
|
|
257
222
|
**Fixed bugs:**
|
258
223
|
|
259
224
|
- Sometimes user is NULL during merges [\#41](https://github.com/skywinder/github-changelog-generator/issues/41)
|
260
|
-
|
261
225
|
- Crash when try generate log for rails [\#35](https://github.com/skywinder/github-changelog-generator/issues/35)
|
262
226
|
|
263
227
|
## [1.2.3](https://github.com/skywinder/github-changelog-generator/tree/1.2.3) (2014-12-16)
|
264
|
-
|
265
228
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.2...1.2.3)
|
266
229
|
|
267
230
|
**Implemented enhancements:**
|
268
231
|
|
269
232
|
- Add ability to run with one parameter instead -u -p [\#38](https://github.com/skywinder/github-changelog-generator/issues/38)
|
270
|
-
|
271
233
|
- Detailed output [\#33](https://github.com/skywinder/github-changelog-generator/issues/33)
|
272
234
|
|
273
235
|
**Fixed bugs:**
|
@@ -277,11 +239,9 @@
|
|
277
239
|
**Merged pull requests:**
|
278
240
|
|
279
241
|
- Implement async fetching [\#39](https://github.com/skywinder/github-changelog-generator/pull/39) ([skywinder](https://github.com/skywinder))
|
280
|
-
|
281
242
|
- Fix crash when user is NULL [\#40](https://github.com/skywinder/github-changelog-generator/pull/40) ([skywinder](https://github.com/skywinder))
|
282
243
|
|
283
244
|
## [1.2.2](https://github.com/skywinder/github-changelog-generator/tree/1.2.2) (2014-12-10)
|
284
|
-
|
285
245
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.1...1.2.2)
|
286
246
|
|
287
247
|
**Fixed bugs:**
|
@@ -293,7 +253,6 @@
|
|
293
253
|
- Add a Bitdeli Badge to README [\#36](https://github.com/skywinder/github-changelog-generator/pull/36) ([bitdeli-chef](https://github.com/bitdeli-chef))
|
294
254
|
|
295
255
|
## [1.2.1](https://github.com/skywinder/github-changelog-generator/tree/1.2.1) (2014-11-22)
|
296
|
-
|
297
256
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.0...1.2.1)
|
298
257
|
|
299
258
|
**Fixed bugs:**
|
@@ -303,23 +262,18 @@
|
|
303
262
|
**Merged pull requests:**
|
304
263
|
|
305
264
|
- Issues for last tag not in list [\#29](https://github.com/skywinder/github-changelog-generator/pull/29) ([skywinder](https://github.com/skywinder))
|
306
|
-
|
307
265
|
- Disable default --filter-pull-requests option. [\#28](https://github.com/skywinder/github-changelog-generator/pull/28) ([skywinder](https://github.com/skywinder))
|
308
266
|
|
309
267
|
## [1.2.0](https://github.com/skywinder/github-changelog-generator/tree/1.2.0) (2014-11-19)
|
310
|
-
|
311
268
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.1.4...1.2.0)
|
312
269
|
|
313
270
|
**Merged pull requests:**
|
314
271
|
|
315
272
|
- Add filter for pull-requests labels. \(option --filter-pull-requests\) [\#27](https://github.com/skywinder/github-changelog-generator/pull/27) ([skywinder](https://github.com/skywinder))
|
316
|
-
|
317
273
|
- Add ability to insert authors of pull-requests \(--\[no-\]author option\) [\#25](https://github.com/skywinder/github-changelog-generator/pull/25) ([skywinder](https://github.com/skywinder))
|
318
|
-
|
319
274
|
- Don't receive issues in case of --no-isses flag specied [\#24](https://github.com/skywinder/github-changelog-generator/pull/24) ([skywinder](https://github.com/skywinder))
|
320
275
|
|
321
276
|
## [1.1.4](https://github.com/skywinder/github-changelog-generator/tree/1.1.4) (2014-11-18)
|
322
|
-
|
323
277
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.1.2...1.1.4)
|
324
278
|
|
325
279
|
**Implemented enhancements:**
|
@@ -331,29 +285,23 @@
|
|
331
285
|
- Sort tags by date [\#23](https://github.com/skywinder/github-changelog-generator/pull/23) ([skywinder](https://github.com/skywinder))
|
332
286
|
|
333
287
|
## [1.1.2](https://github.com/skywinder/github-changelog-generator/tree/1.1.2) (2014-11-12)
|
334
|
-
|
335
288
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.1.1...1.1.2)
|
336
289
|
|
337
290
|
**Merged pull requests:**
|
338
291
|
|
339
292
|
- Fix bug with dot signs in project name [\#18](https://github.com/skywinder/github-changelog-generator/pull/18) ([skywinder](https://github.com/skywinder))
|
340
|
-
|
341
293
|
- Fix bug with dot signs in user name [\#17](https://github.com/skywinder/github-changelog-generator/pull/17) ([skywinder](https://github.com/skywinder))
|
342
294
|
|
343
295
|
## [1.1.1](https://github.com/skywinder/github-changelog-generator/tree/1.1.1) (2014-11-10)
|
344
|
-
|
345
296
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.1.0...1.1.1)
|
346
297
|
|
347
298
|
**Merged pull requests:**
|
348
299
|
|
349
300
|
- Remove duplicates of issues and pull-requests with same number [\#15](https://github.com/skywinder/github-changelog-generator/pull/15) ([skywinder](https://github.com/skywinder))
|
350
|
-
|
351
301
|
- Sort issues by tags [\#14](https://github.com/skywinder/github-changelog-generator/pull/14) ([skywinder](https://github.com/skywinder))
|
352
|
-
|
353
302
|
- Add ability to add or exclude issues without any labels [\#13](https://github.com/skywinder/github-changelog-generator/pull/13) ([skywinder](https://github.com/skywinder))
|
354
303
|
|
355
304
|
## [1.1.0](https://github.com/skywinder/github-changelog-generator/tree/1.1.0) (2014-11-10)
|
356
|
-
|
357
305
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.0.1...1.1.0)
|
358
306
|
|
359
307
|
**Implemented enhancements:**
|
@@ -363,21 +311,17 @@
|
|
363
311
|
**Fixed bugs:**
|
364
312
|
|
365
313
|
- Bug with wrong credentials in 1.0.1 [\#12](https://github.com/skywinder/github-changelog-generator/issues/12)
|
366
|
-
|
367
314
|
- Markdown formating in the last line wrong [\#9](https://github.com/skywinder/github-changelog-generator/issues/9)
|
368
315
|
|
369
316
|
## [1.0.1](https://github.com/skywinder/github-changelog-generator/tree/1.0.1) (2014-11-10)
|
370
|
-
|
371
317
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.0.0...1.0.1)
|
372
318
|
|
373
319
|
## [1.0.0](https://github.com/skywinder/github-changelog-generator/tree/1.0.0) (2014-11-07)
|
374
|
-
|
375
320
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/0.1.0...1.0.0)
|
376
321
|
|
377
322
|
**Implemented enhancements:**
|
378
323
|
|
379
324
|
- Add support for fixed issues and implemented enchanments. [\#6](https://github.com/skywinder/github-changelog-generator/issues/6)
|
380
|
-
|
381
325
|
- Implement option to specify output filename [\#4](https://github.com/skywinder/github-changelog-generator/issues/4)
|
382
326
|
|
383
327
|
**Fixed bugs:**
|
@@ -387,27 +331,21 @@
|
|
387
331
|
**Merged pull requests:**
|
388
332
|
|
389
333
|
- Implement support of different tags. [\#8](https://github.com/skywinder/github-changelog-generator/pull/8) ([skywinder](https://github.com/skywinder))
|
390
|
-
|
391
334
|
- Add support for issues in CHANGELOG [\#7](https://github.com/skywinder/github-changelog-generator/pull/7) ([skywinder](https://github.com/skywinder))
|
392
335
|
|
393
336
|
## [0.1.0](https://github.com/skywinder/github-changelog-generator/tree/0.1.0) (2014-11-07)
|
394
|
-
|
395
337
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/0.0.2...0.1.0)
|
396
338
|
|
397
339
|
**Merged pull requests:**
|
398
340
|
|
399
341
|
- Fix parsing date of pull request [\#3](https://github.com/skywinder/github-changelog-generator/pull/3) ([skywinder](https://github.com/skywinder))
|
400
|
-
|
401
342
|
- Add changelog generation for last tag [\#2](https://github.com/skywinder/github-changelog-generator/pull/2) ([skywinder](https://github.com/skywinder))
|
402
|
-
|
403
343
|
- Add option \(-o --output\) to specify name of the output file. [\#1](https://github.com/skywinder/github-changelog-generator/pull/1) ([skywinder](https://github.com/skywinder))
|
404
344
|
|
405
345
|
## [0.0.2](https://github.com/skywinder/github-changelog-generator/tree/0.0.2) (2014-11-06)
|
406
|
-
|
407
346
|
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/0.0.1...0.0.2)
|
408
347
|
|
409
348
|
## [0.0.1](https://github.com/skywinder/github-changelog-generator/tree/0.0.1) (2014-11-06)
|
410
349
|
|
411
350
|
|
412
|
-
|
413
351
|
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,194 +1,216 @@
|
|
1
|
-
[![Gem Version](https://badge.fury.io/rb/github_changelog_generator.svg)](http://badge.fury.io/rb/github_changelog_generator)
|
2
|
-
[![Dependency Status](https://gemnasium.com/skywinder/github-changelog-generator.svg)](https://gemnasium.com/skywinder/github-changelog-generator)
|
3
|
-
[![Build Status](https://travis-ci.org/skywinder/github-changelog-generator.svg?branch=master)](https://travis-ci.org/skywinder/github-changelog-generator)
|
4
|
-
[![Inline docs](http://inch-ci.org/github/skywinder/github-changelog-generator.svg)](http://inch-ci.org/github/skywinder/github-changelog-generator)
|
5
|
-
[![Code Climate](https://codeclimate.com/github/skywinder/github-changelog-generator/badges/gpa.svg)](https://codeclimate.com/github/skywinder/github-changelog-generator)
|
6
|
-
[![Test Coverage](https://codeclimate.com/github/skywinder/github-changelog-generator/badges/coverage.svg)](https://codeclimate.com/github/skywinder/github-changelog-generator)
|
7
|
-
|
8
|
-
GitHub Changelog Generator ![GitHub Logo](../master/images/logo.jpg)
|
9
|
-
==================
|
10
|
-
|
11
|
-
- [Installation](#installation)
|
12
|
-
- [Output example](#output-example)
|
13
|
-
- [Usage](#usage)
|
14
|
-
- [Params](#params)
|
15
|
-
- [GitHub token](#github-token)
|
16
|
-
- [Features and advantages of this project](#features-and-advantages-of-this-project)
|
17
|
-
- [Alternatives](#alternatives)
|
18
|
-
- [Projects using this library](#projects-using-this-library)
|
19
|
-
- [Am I missing some essential feature?](#am-i-missing-some-essential-feature)
|
20
|
-
- [Contributing](#contributing)
|
21
|
-
- [License](#license)
|
22
|
-
|
23
|
-
|
24
|
-
### Changelog generation has never been so easy:
|
25
|
-
|
26
|
-
**Fully automate changelog generation** - This gem generates change log file based on **tags**, **issues** and merged **pull requests** (and splits them into separate lists according labels) from :octocat: GitHub Issue Tracker.
|
27
|
-
|
28
|
-
Since now you don't have to fill your `CHANGELOG.md` manually: just run the script, relax and take a cup of :coffee: before your next release! :tada:
|
29
|
-
|
30
|
-
>### *What’s the point of a change log?*
|
31
|
-
To make it easier for users and contributors to see precisely what notable changes have been made between each release (or version) of the project.
|
32
|
-
### *Why should I care?*
|
33
|
-
Because software tools are for people. If you don’t care, why are you contributing to open source? Surely, there must be a kernel (ha!) of care somewhere in that lovely little brain of yours.
|
34
|
-
|
35
|
-
> :copyright: *[http://keepachangelog.com](http://keepachangelog.com/)*
|
36
|
-
|
37
|
-
## Installation
|
38
|
-
|
39
|
-
[sudo] gem install github_changelog_generator
|
40
|
-
|
41
|
-
## Output example
|
42
|
-
|
43
|
-
- Look at **[CHANGELOG.md](https://github.com/skywinder/Github-Changelog-Generator/blob/master/CHANGELOG.md)** for this project
|
44
|
-
- [ActionSheetPicker-3.0/CHANGELOG.md](https://github.com/skywinder/ActionSheetPicker-3.0/blob/master/CHANGELOG.md) was generated by command:
|
45
|
-
|
46
|
-
github_changelog_generator -u skywinder -p ActionSheetPicker-3.0
|
47
|
-
|
48
|
-
- In general it looks like this:
|
49
|
-
|
50
|
-
> ## [1.2.5](https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.5) (2015-01-15)
|
51
|
-
>
|
52
|
-
> [Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.4...1.2.5)
|
53
|
-
>
|
54
|
-
> **Implemented enhancements:**
|
55
|
-
>
|
56
|
-
> - Use milestone to specify in which version bug was fixed [\#22](https://github.com/skywinder/Github-Changelog-Generator/issues/22)
|
57
|
-
>
|
58
|
-
> **Fixed bugs:**
|
59
|
-
>
|
60
|
-
> - Error when trying to generate log for repo without tags [\#32](https://github.com/skywinder/Github-Changelog-Generator/issues/32)
|
61
|
-
>
|
62
|
-
> **Merged pull requests:**
|
63
|
-
>
|
64
|
-
> - PrettyPrint class is included using lowercase 'pp' [\#43](https://github.com/skywinder/Github-Changelog-Generator/pull/43) ([schwing](https://github.com/schwing))
|
65
|
-
>
|
66
|
-
> - support enterprise github via command line options [\#42](https://github.com/skywinder/Github-Changelog-Generator/pull/42) ([glenlovett](https://github.com/glenlovett))
|
67
|
-
|
68
|
-
|
69
|
-
## Usage
|
70
|
-
**It's really simple**:
|
71
|
-
|
72
|
-
- If your **git remote** `origin` refers to your GitHub repo, then just go to your project folder and run:
|
73
|
-
|
74
|
-
github_changelog_generator
|
75
|
-
|
76
|
-
- or from anywhere:
|
77
|
-
- `github_changelog_generator -u github_username -p github_project`
|
78
|
-
- `github_changelog_generator github_username/github_project`
|
79
|
-
|
80
|
-
As output you will get `CHANGELOG.md` file with pretty *Markdown-formatted* changelog.
|
81
|
-
|
82
|
-
### Params
|
83
|
-
Type `github_changelog_generator --help` for details.
|
84
|
-
|
85
|
-
More detailed info about params you can find in Wiki page: [**Advanced change log generation examples**](https://github.com/skywinder/github-changelog-generator/wiki/Advanced-change-log-generation-examples)
|
86
|
-
|
87
|
-
### GitHub token
|
88
|
-
|
89
|
-
Since GitHub allows you to make only 50 requests without authentication it's recommended to run this script with a token (`-t, --token` option)
|
90
|
-
|
91
|
-
**You can easily [generate it here](https://github.com/settings/tokens/new?description=GitHub%20Changelog%20Generator%20token)**.
|
92
|
-
|
93
|
-
And:
|
94
|
-
|
95
|
-
- Run with key `-t [your-
|
96
|
-
- Or set environment variable `CHANGELOG_GITHUB_TOKEN` and specify there your token.
|
97
|
-
|
98
|
-
i.e. add to your `~/.bash_profile` or `~/.zshrc` or any other place to load ENV variables string :
|
99
|
-
|
100
|
-
export CHANGELOG_GITHUB_TOKEN="your-40-digit-github-token"
|
101
|
-
|
102
|
-
So, if you got error like this:
|
103
|
-
>! /Library/Ruby/Gems/2.0.0/gems/github_api-0.12.2/lib/github_api/response/raise_error.rb:14:in `on_complete'
|
104
|
-
|
105
|
-
It's time to create this token or wait for 1 hour before GitHub reset the counter for your IP.
|
106
|
-
|
107
|
-
##
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/github_changelog_generator.svg)](http://badge.fury.io/rb/github_changelog_generator)
|
2
|
+
[![Dependency Status](https://gemnasium.com/skywinder/github-changelog-generator.svg)](https://gemnasium.com/skywinder/github-changelog-generator)
|
3
|
+
[![Build Status](https://travis-ci.org/skywinder/github-changelog-generator.svg?branch=master)](https://travis-ci.org/skywinder/github-changelog-generator)
|
4
|
+
[![Inline docs](http://inch-ci.org/github/skywinder/github-changelog-generator.svg)](http://inch-ci.org/github/skywinder/github-changelog-generator)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/skywinder/github-changelog-generator/badges/gpa.svg)](https://codeclimate.com/github/skywinder/github-changelog-generator)
|
6
|
+
[![Test Coverage](https://codeclimate.com/github/skywinder/github-changelog-generator/badges/coverage.svg)](https://codeclimate.com/github/skywinder/github-changelog-generator)
|
7
|
+
|
8
|
+
GitHub Changelog Generator ![GitHub Logo](../master/images/logo.jpg)
|
9
|
+
==================
|
10
|
+
|
11
|
+
- [Installation](#installation)
|
12
|
+
- [Output example](#output-example)
|
13
|
+
- [Usage](#usage)
|
14
|
+
- [Params](#params)
|
15
|
+
- [GitHub token](#github-token)
|
16
|
+
- [Features and advantages of this project](#features-and-advantages-of-this-project)
|
17
|
+
- [Alternatives](#alternatives)
|
18
|
+
- [Projects using this library](#projects-using-this-library)
|
19
|
+
- [Am I missing some essential feature?](#am-i-missing-some-essential-feature)
|
20
|
+
- [Contributing](#contributing)
|
21
|
+
- [License](#license)
|
22
|
+
|
23
|
+
|
24
|
+
### Changelog generation has never been so easy:
|
25
|
+
|
26
|
+
**Fully automate changelog generation** - This gem generates change log file based on **tags**, **issues** and merged **pull requests** (and splits them into separate lists according labels) from :octocat: GitHub Issue Tracker.
|
27
|
+
|
28
|
+
Since now you don't have to fill your `CHANGELOG.md` manually: just run the script, relax and take a cup of :coffee: before your next release! :tada:
|
29
|
+
|
30
|
+
>### *What’s the point of a change log?*
|
31
|
+
To make it easier for users and contributors to see precisely what notable changes have been made between each release (or version) of the project.
|
32
|
+
### *Why should I care?*
|
33
|
+
Because software tools are for people. If you don’t care, why are you contributing to open source? Surely, there must be a kernel (ha!) of care somewhere in that lovely little brain of yours.
|
34
|
+
|
35
|
+
> :copyright: *[http://keepachangelog.com](http://keepachangelog.com/)*
|
36
|
+
|
37
|
+
## Installation
|
38
|
+
|
39
|
+
[sudo] gem install github_changelog_generator
|
40
|
+
|
41
|
+
## Output example
|
42
|
+
|
43
|
+
- Look at **[CHANGELOG.md](https://github.com/skywinder/Github-Changelog-Generator/blob/master/CHANGELOG.md)** for this project
|
44
|
+
- [ActionSheetPicker-3.0/CHANGELOG.md](https://github.com/skywinder/ActionSheetPicker-3.0/blob/master/CHANGELOG.md) was generated by command:
|
45
|
+
|
46
|
+
github_changelog_generator -u skywinder -p ActionSheetPicker-3.0
|
47
|
+
|
48
|
+
- In general it looks like this:
|
49
|
+
|
50
|
+
> ## [1.2.5](https://github.com/skywinder/Github-Changelog-Generator/tree/1.2.5) (2015-01-15)
|
51
|
+
>
|
52
|
+
> [Full Changelog](https://github.com/skywinder/Github-Changelog-Generator/compare/1.2.4...1.2.5)
|
53
|
+
>
|
54
|
+
> **Implemented enhancements:**
|
55
|
+
>
|
56
|
+
> - Use milestone to specify in which version bug was fixed [\#22](https://github.com/skywinder/Github-Changelog-Generator/issues/22)
|
57
|
+
>
|
58
|
+
> **Fixed bugs:**
|
59
|
+
>
|
60
|
+
> - Error when trying to generate log for repo without tags [\#32](https://github.com/skywinder/Github-Changelog-Generator/issues/32)
|
61
|
+
>
|
62
|
+
> **Merged pull requests:**
|
63
|
+
>
|
64
|
+
> - PrettyPrint class is included using lowercase 'pp' [\#43](https://github.com/skywinder/Github-Changelog-Generator/pull/43) ([schwing](https://github.com/schwing))
|
65
|
+
>
|
66
|
+
> - support enterprise github via command line options [\#42](https://github.com/skywinder/Github-Changelog-Generator/pull/42) ([glenlovett](https://github.com/glenlovett))
|
67
|
+
|
68
|
+
|
69
|
+
## Usage
|
70
|
+
**It's really simple**:
|
71
|
+
|
72
|
+
- If your **git remote** `origin` refers to your GitHub repo, then just go to your project folder and run:
|
73
|
+
|
74
|
+
github_changelog_generator
|
75
|
+
|
76
|
+
- or from anywhere:
|
77
|
+
- `github_changelog_generator -u github_username -p github_project`
|
78
|
+
- `github_changelog_generator github_username/github_project`
|
79
|
+
|
80
|
+
As output you will get `CHANGELOG.md` file with pretty *Markdown-formatted* changelog.
|
81
|
+
|
82
|
+
### Params
|
83
|
+
Type `github_changelog_generator --help` for details.
|
84
|
+
|
85
|
+
More detailed info about params you can find in Wiki page: [**Advanced change log generation examples**](https://github.com/skywinder/github-changelog-generator/wiki/Advanced-change-log-generation-examples)
|
86
|
+
|
87
|
+
### GitHub token
|
88
|
+
|
89
|
+
Since GitHub allows you to make only 50 requests without authentication it's recommended to run this script with a token (`-t, --token` option)
|
90
|
+
|
91
|
+
**You can easily [generate it here](https://github.com/settings/tokens/new?description=GitHub%20Changelog%20Generator%20token)**.
|
92
|
+
|
93
|
+
And:
|
94
|
+
|
95
|
+
- Run with key `-t [your-40-digit-token]`
|
96
|
+
- Or set environment variable `CHANGELOG_GITHUB_TOKEN` and specify there your token.
|
97
|
+
|
98
|
+
i.e. add to your `~/.bash_profile` or `~/.zshrc` or any other place to load ENV variables string :
|
99
|
+
|
100
|
+
export CHANGELOG_GITHUB_TOKEN="your-40-digit-github-token"
|
101
|
+
|
102
|
+
So, if you got error like this:
|
103
|
+
>! /Library/Ruby/Gems/2.0.0/gems/github_api-0.12.2/lib/github_api/response/raise_error.rb:14:in `on_complete'
|
104
|
+
|
105
|
+
It's time to create this token or wait for 1 hour before GitHub reset the counter for your IP.
|
106
|
+
|
107
|
+
## Migrating from a manual changelog
|
108
|
+
|
109
|
+
Knowing how dedicated you are to your project, you probably haven't been waiting for github-changelog-generator to keep a changelog,
|
110
|
+
but you most likely wouln't like to have to open issues and PRs for all past features listed in your historic changelog.
|
111
|
+
|
112
|
+
That's where `--base` comes handy. This option lets you pass a static changelog to be appended at the end of the generated entries.
|
113
|
+
|
114
|
+
If you have a `HISTORY.md` file in your project, it will automatically be picked as the static historical changelog and appended.
|
115
|
+
|
116
|
+
### Rake task
|
117
|
+
|
118
|
+
You love Rake? So do we! And so we've made it easier for you by providing a Rake task library for your Change log generation. In your Rakefile, use:
|
119
|
+
|
120
|
+
```ruby
|
121
|
+
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
122
|
+
config.since_tag = '0.1.14'
|
123
|
+
config.future_release = '0.2.0'
|
124
|
+
end
|
125
|
+
```
|
126
|
+
|
127
|
+
All command line options can be passed to the Rake task as `config` parameters. Since you're naming the Rake task yourself, you can create as many as you want, too.
|
128
|
+
|
129
|
+
##Features and advantages of this project
|
130
|
+
- Generate canonical, neat change log file, followed by [basic change log guidelines](http://keepachangelog.com/) :gem:
|
131
|
+
- Possible to generate **Unreleased** changes (closed issues that have not released yet) :dizzy:
|
132
|
+
- **GitHub Enterprise support** via command line options! :factory:
|
133
|
+
- Flexible format **customisation**:
|
134
|
+
- **Customize** issues, that **should be added** to changelog :eight_spoked_asterisk:
|
135
|
+
- **Custom date format** supported (but get in mind [ISO 8601](http://xkcd.com/1179/) ) :date:
|
136
|
+
- Ability to manually specify in which version issue was fixed (in case, when closed date is not match) by setting `milestone` of issue the same name as tag of required version :pushpin:
|
137
|
+
- Automatically **exclude specific issues**, not-related to change log (any issue, that has label `question` `duplicate` `invalid` `wontfix`by default) :scissors:
|
138
|
+
- **Distinguish** issues **according labels**. :mag_right:
|
139
|
+
- Merged pull requests (all `merged` pull-requests) :twisted_rightwards_arrows:
|
140
|
+
- Bug fixes (by label `bug` in issue) :beetle:
|
141
|
+
- Enhancements (by label `enhancement` in issue) :star2:
|
142
|
+
- Issues (closed issues `w/o any labels`) :non-potable_water:
|
143
|
+
|
144
|
+
- You can manually set which labels should be included/excluded. :wrench:
|
145
|
+
- Apply a lot of other customisations, to fit changelog for your personal style :tophat:
|
146
|
+
(*look `github_changelog_generator --help` for details)*
|
147
|
+
|
148
|
+
|
149
|
+
###Alternatives
|
150
|
+
Here is a [wikipage list of alternatives](https://github.com/skywinder/Github-Changelog-Generator/wiki/Alternatives), that I found. But none satisfied my requirements.
|
151
|
+
|
152
|
+
*If you know other projects - feel free to edit this Wiki page!*
|
153
|
+
|
154
|
+
|
155
|
+
### Projects using this library
|
156
|
+
[Wikipage with list of projects](https://github.com/skywinder/Github-Changelog-Generator/wiki/Projects-using-Github-Changelog-Generator)
|
157
|
+
|
136
158
|
If you've used this project in a live app, please let me know! Nothing makes me happier than seeing someone else take my work and go wild with it.
|
137
|
-
|
138
|
-
*If you are using `github_changelog_generator` for generation change log in your project or know another project that uses it, please add it to [this] (https://github.com/skywinder/Github-Changelog-Generator/wiki/Projects-using-Github-Changelog-Generator) list.*
|
139
|
-
|
140
|
-
## Am I missing some essential feature?
|
141
|
-
|
142
|
-
- **Nothing is impossible!**
|
143
|
-
|
144
|
-
- Open an [issue](https://github.com/skywinder/Github-Changelog-Generator/issues/new) and let's make generator better together!
|
145
|
-
|
146
|
-
- *Bug reports, feature requests, patches, well-wishes are always welcome* :heavy_exclamation_mark:
|
147
|
-
|
148
|
-
## FAQ
|
149
|
-
|
150
|
-
- ***I already use GitHub Releases. Why do I need this?***
|
151
|
-
|
152
|
-
GitHub Releases is a very good thing. And it's very good practice to maintain it (not so much people using it yet)! :congratulations:
|
153
|
-
|
154
|
-
*BDW: I would like to support GitHub Releases in [next releases](https://github.com/skywinder/github-changelog-generator/issues/56) ;)*
|
155
|
-
|
156
|
-
I'm not try to compare quality of auto-generated and manually generated logs.. but:
|
157
|
-
|
158
|
-
The auto generated Changelog really helps even if you manually fill Releases notes!
|
159
|
-
|
160
|
-
For example:
|
161
|
-
|
162
|
-
When I found a closed bug - it's very useful to understand, in which release it was fixed. In that case you can easily find this issue by \# in `CHANGELOG.md`.
|
163
|
-
|
164
|
-
- it's not so quite easy to find it in manually filled Releases notes.
|
165
|
-
- this file can also help you to build your Release note and not miss features in manually-filled list.
|
166
|
-
|
167
|
-
In the end:
|
168
|
-
|
169
|
-
I think, that GitHub Releases is more for end-users.
|
170
|
-
But `CHANGELOG.md` could stay in the repo for developers with detailed list of changes.
|
171
|
-
And it's nothing bad to combine GitHub Releases and `CHANGELOG.md` file together in that manner.
|
172
|
-
|
173
|
-
- ***I received a warning: GitHub API rate limit exceed, what does this mean?***
|
174
|
-
|
175
|
-
GitHub [limits the number of API requests](https://developer.github.com/v3/#rate-limiting) you can make in an hour. You can make up to 5,000 requests per hour. For unauthenticated requests, the rate limit allows you to make up to 60 requests per hour. Unauthenticated requests are associated with your IP address, and not the user making requests.
|
176
|
-
|
177
|
-
If you're seeing this warning:
|
178
|
-
|
179
|
-
1. Make sure you're providing an OAuth token so you're not anonymously making requests. This will increase the number of requests from 60 to 5000 per hour.
|
180
|
-
2. You probably have a large repo with lots of issues/PRs. You can use the `--max-issues NUM` argument to limit the number of issues that are pulled back. For example: `--max-issues 1000`
|
181
|
-
|
182
|
-
## Contributing
|
183
|
-
|
184
|
-
1. Create an issue to discuss about your idea
|
185
|
-
2. [Fork it] (https://github.com/skywinder/Github-Changelog-Generator/fork)
|
186
|
-
3. Create your feature branch (`git checkout -b my-new-feature`)
|
187
|
-
4. Commit your changes (`git commit -am 'Add some feature'`)
|
188
|
-
5. Push to the branch (`git push origin my-new-feature`)
|
189
|
-
6. Create a new Pull Request
|
190
|
-
7. Profit! :white_check_mark:
|
191
|
-
|
192
|
-
## License
|
193
|
-
|
194
|
-
Github Changelog Generator is released under the [MIT License](http://www.opensource.org/licenses/MIT).
|
159
|
+
|
160
|
+
*If you are using `github_changelog_generator` for generation change log in your project or know another project that uses it, please add it to [this] (https://github.com/skywinder/Github-Changelog-Generator/wiki/Projects-using-Github-Changelog-Generator) list.*
|
161
|
+
|
162
|
+
## Am I missing some essential feature?
|
163
|
+
|
164
|
+
- **Nothing is impossible!**
|
165
|
+
|
166
|
+
- Open an [issue](https://github.com/skywinder/Github-Changelog-Generator/issues/new) and let's make generator better together!
|
167
|
+
|
168
|
+
- *Bug reports, feature requests, patches, well-wishes are always welcome* :heavy_exclamation_mark:
|
169
|
+
|
170
|
+
## FAQ
|
171
|
+
|
172
|
+
- ***I already use GitHub Releases. Why do I need this?***
|
173
|
+
|
174
|
+
GitHub Releases is a very good thing. And it's very good practice to maintain it (not so much people using it yet)! :congratulations:
|
175
|
+
|
176
|
+
*BDW: I would like to support GitHub Releases in [next releases](https://github.com/skywinder/github-changelog-generator/issues/56) ;)*
|
177
|
+
|
178
|
+
I'm not try to compare quality of auto-generated and manually generated logs.. but:
|
179
|
+
|
180
|
+
The auto generated Changelog really helps even if you manually fill Releases notes!
|
181
|
+
|
182
|
+
For example:
|
183
|
+
|
184
|
+
When I found a closed bug - it's very useful to understand, in which release it was fixed. In that case you can easily find this issue by \# in `CHANGELOG.md`.
|
185
|
+
|
186
|
+
- it's not so quite easy to find it in manually filled Releases notes.
|
187
|
+
- this file can also help you to build your Release note and not miss features in manually-filled list.
|
188
|
+
|
189
|
+
In the end:
|
190
|
+
|
191
|
+
I think, that GitHub Releases is more for end-users.
|
192
|
+
But `CHANGELOG.md` could stay in the repo for developers with detailed list of changes.
|
193
|
+
And it's nothing bad to combine GitHub Releases and `CHANGELOG.md` file together in that manner.
|
194
|
+
|
195
|
+
- ***I received a warning: GitHub API rate limit exceed, what does this mean?***
|
196
|
+
|
197
|
+
GitHub [limits the number of API requests](https://developer.github.com/v3/#rate-limiting) you can make in an hour. You can make up to 5,000 requests per hour. For unauthenticated requests, the rate limit allows you to make up to 60 requests per hour. Unauthenticated requests are associated with your IP address, and not the user making requests.
|
198
|
+
|
199
|
+
If you're seeing this warning:
|
200
|
+
|
201
|
+
1. Make sure you're providing an OAuth token so you're not anonymously making requests. This will increase the number of requests from 60 to 5000 per hour.
|
202
|
+
2. You probably have a large repo with lots of issues/PRs. You can use the `--max-issues NUM` argument to limit the number of issues that are pulled back. For example: `--max-issues 1000`
|
203
|
+
|
204
|
+
## Contributing
|
205
|
+
|
206
|
+
1. Create an issue to discuss about your idea
|
207
|
+
2. [Fork it] (https://github.com/skywinder/Github-Changelog-Generator/fork)
|
208
|
+
3. Create your feature branch (`git checkout -b my-new-feature`)
|
209
|
+
4. Commit your changes (`git commit -am 'Add some feature'`)
|
210
|
+
5. Push to the branch (`git push origin my-new-feature`)
|
211
|
+
6. Create a new Pull Request
|
212
|
+
7. Profit! :white_check_mark:
|
213
|
+
|
214
|
+
## License
|
215
|
+
|
216
|
+
Github Changelog Generator is released under the [MIT License](http://www.opensource.org/licenses/MIT).
|
@@ -16,6 +16,8 @@ module GitHubChangelogGenerator
|
|
16
16
|
log += generate_log_for_all_tags
|
17
17
|
end
|
18
18
|
|
19
|
+
log += File.read(@options[:base]) if File.file?(@options[:base])
|
20
|
+
|
19
21
|
log += "\n\n\\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*"
|
20
22
|
@log = log
|
21
23
|
end
|
@@ -76,10 +78,15 @@ module GitHubChangelogGenerator
|
|
76
78
|
time_string = newer_tag_time.strftime @options[:date_format]
|
77
79
|
|
78
80
|
# Generate tag name and link
|
81
|
+
if @options[:release_url]
|
82
|
+
release_url = format(@options[:release_url], newer_tag_link)
|
83
|
+
else
|
84
|
+
release_url = "#{project_url}/tree/#{newer_tag_link}"
|
85
|
+
end
|
79
86
|
if newer_tag_name.equal? @options[:unreleased_label]
|
80
|
-
log += "## [#{newer_tag_name}](#{
|
87
|
+
log += "## [#{newer_tag_name}](#{release_url})\n\n"
|
81
88
|
else
|
82
|
-
log += "## [#{newer_tag_name}](#{
|
89
|
+
log += "## [#{newer_tag_name}](#{release_url}) (#{time_string})\n"
|
83
90
|
end
|
84
91
|
|
85
92
|
if @options[:compare_link] && older_tag_link
|
@@ -52,14 +52,68 @@ module GitHubChangelogGenerator
|
|
52
52
|
[newer_tag_link, newer_tag_name, newer_tag_time]
|
53
53
|
end
|
54
54
|
|
55
|
+
# @return [Object] try to find newest tag using #Reader and :base option if specified otherwise returns nil
|
56
|
+
def detect_since_tag
|
57
|
+
if @options[:base] && File.file?(@options[:base])
|
58
|
+
reader = GitHubChangelogGenerator::Reader.new
|
59
|
+
content = reader.read(@options[:base])
|
60
|
+
return content[0]["version"] if content
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
55
64
|
# Return tags after filtering tags in lists provided by option: --between-tags & --exclude-tags
|
56
65
|
#
|
57
66
|
# @return [Array]
|
58
67
|
def get_filtered_tags(all_tags)
|
59
|
-
filtered_tags =
|
68
|
+
filtered_tags = filter_since_tag(all_tags)
|
69
|
+
filtered_tags = filter_between_tags(filtered_tags)
|
60
70
|
filter_excluded_tags(filtered_tags)
|
61
71
|
end
|
62
72
|
|
73
|
+
# @param [Array] all_tags all tags
|
74
|
+
# @return [Array] filtered tags according :since_tag option
|
75
|
+
def filter_since_tag(all_tags)
|
76
|
+
filtered_tags = all_tags
|
77
|
+
tag = @options[:since_tag]
|
78
|
+
tag ||= detect_since_tag
|
79
|
+
if tag
|
80
|
+
if all_tags.map(&:name).include? tag
|
81
|
+
idx = all_tags.index { |t| t.name == tag }
|
82
|
+
if idx > 0
|
83
|
+
filtered_tags = all_tags[0..idx - 1]
|
84
|
+
else
|
85
|
+
filtered_tags = []
|
86
|
+
end
|
87
|
+
else
|
88
|
+
Helper.log.warn "Warning: can't find tag #{tag}, specified with --since-tag option."
|
89
|
+
end
|
90
|
+
end
|
91
|
+
filtered_tags
|
92
|
+
end
|
93
|
+
|
94
|
+
# @param [Array] all_tags all tags
|
95
|
+
# @return [Array] filtered tags according :due_tag option
|
96
|
+
def filter_due_tag(all_tags)
|
97
|
+
filtered_tags = all_tags
|
98
|
+
tag = @options[:due_tag]
|
99
|
+
if tag
|
100
|
+
if (all_tags.count > 0) && (all_tags.map(&:name).include? tag)
|
101
|
+
idx = all_tags.index { |t| t.name == tag }
|
102
|
+
last_index = all_tags.count - 1
|
103
|
+
if idx > 0 && idx < last_index
|
104
|
+
filtered_tags = all_tags[idx + 1..last_index]
|
105
|
+
else
|
106
|
+
filtered_tags = []
|
107
|
+
end
|
108
|
+
else
|
109
|
+
Helper.log.warn "Warning: can't find tag #{tag}, specified with --due-tag option."
|
110
|
+
end
|
111
|
+
end
|
112
|
+
filtered_tags
|
113
|
+
end
|
114
|
+
|
115
|
+
# @param [Array] all_tags all tags
|
116
|
+
# @return [Array] filtered tags according :between_tags option
|
63
117
|
def filter_between_tags(all_tags)
|
64
118
|
filtered_tags = all_tags
|
65
119
|
if @options[:between_tags]
|
@@ -73,6 +127,8 @@ module GitHubChangelogGenerator
|
|
73
127
|
filtered_tags
|
74
128
|
end
|
75
129
|
|
130
|
+
# @param [Array] all_tags all tags
|
131
|
+
# @return [Array] filtered tags according :exclude_tags option
|
76
132
|
def filter_excluded_tags(all_tags)
|
77
133
|
filtered_tags = all_tags
|
78
134
|
if @options[:exclude_tags]
|
@@ -14,7 +14,7 @@ module GitHubChangelogGenerator
|
|
14
14
|
parser.parse!
|
15
15
|
|
16
16
|
if options[:user].nil? || options[:project].nil?
|
17
|
-
detect_user_and_project(options)
|
17
|
+
detect_user_and_project(options, ARGV[0], ARGV[1])
|
18
18
|
end
|
19
19
|
|
20
20
|
if !options[:user] || !options[:project]
|
@@ -50,6 +50,9 @@ module GitHubChangelogGenerator
|
|
50
50
|
opts.on("-o", "--output [NAME]", "Output file. Default is CHANGELOG.md") do |last|
|
51
51
|
options[:output] = last
|
52
52
|
end
|
53
|
+
opts.on("-b", "--base [NAME]", "Optional base file to append generated changes to.") do |last|
|
54
|
+
options[:base] = last
|
55
|
+
end
|
53
56
|
opts.on("--bugs-label [LABEL]", "Setup custom label for bug-fixes section. Default is \"**Fixed bugs:**""") do |v|
|
54
57
|
options[:bug_prefix] = v
|
55
58
|
end
|
@@ -110,12 +113,21 @@ module GitHubChangelogGenerator
|
|
110
113
|
opts.on("--between-tags x,y,z", Array, "Change log will be filled only between specified tags") do |list|
|
111
114
|
options[:between_tags] = list
|
112
115
|
end
|
113
|
-
opts.on("--exclude-tags x,y,z", Array, "Change log will
|
116
|
+
opts.on("--exclude-tags x,y,z", Array, "Change log will exclude specified tags") do |list|
|
114
117
|
options[:exclude_tags] = list
|
115
118
|
end
|
119
|
+
opts.on("--since-tag x", "Change log will start after specified tag") do |v|
|
120
|
+
options[:since_tag] = v
|
121
|
+
end
|
122
|
+
opts.on("--due-tag x", "Change log will end before specified tag") do |v|
|
123
|
+
options[:due_tag] = v
|
124
|
+
end
|
116
125
|
opts.on("--max-issues [NUMBER]", Integer, "Max number of issues to fetch from GitHub. Default is unlimited") do |max|
|
117
126
|
options[:max_issues] = max
|
118
127
|
end
|
128
|
+
opts.on("--release-url [URL]", "The URL to point to for release links, in printf format (with the tag as variable).") do |url|
|
129
|
+
options[:release_url] = url
|
130
|
+
end
|
119
131
|
opts.on("--github-site [URL]", "The Enterprise Github site on which your project is hosted.") do |last|
|
120
132
|
options[:github_site] = last
|
121
133
|
end
|
@@ -150,6 +162,7 @@ module GitHubChangelogGenerator
|
|
150
162
|
tag2: nil,
|
151
163
|
date_format: "%Y-%m-%d",
|
152
164
|
output: "CHANGELOG.md",
|
165
|
+
base: "HISTORY.md",
|
153
166
|
issues: true,
|
154
167
|
add_issues_wo_labels: true,
|
155
168
|
add_pr_wo_labels: true,
|
@@ -177,8 +190,8 @@ module GitHubChangelogGenerator
|
|
177
190
|
end
|
178
191
|
|
179
192
|
# Detects user and project from git
|
180
|
-
def self.detect_user_and_project(options)
|
181
|
-
options[:user], options[:project] = user_project_from_option(
|
193
|
+
def self.detect_user_and_project(options, arg0 = nil, arg1 = nil)
|
194
|
+
options[:user], options[:project] = user_project_from_option(arg0, arg1, options[:github_site])
|
182
195
|
if !options[:user] || !options[:project]
|
183
196
|
if ENV["RUBYLIB"] =~ /ruby-debug-ide/
|
184
197
|
options[:user] = "skywinder"
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require "rake"
|
2
|
+
require "rake/tasklib"
|
3
|
+
require "github_changelog_generator"
|
4
|
+
|
5
|
+
module GitHubChangelogGenerator
|
6
|
+
class RakeTask < ::Rake::TaskLib
|
7
|
+
include ::Rake::DSL if defined?(::Rake::DSL)
|
8
|
+
|
9
|
+
OPTIONS = %w( user project token date_format output
|
10
|
+
bug_prefix enhancement_prefix issue_prefix
|
11
|
+
header merge_prefix issues
|
12
|
+
add_issues_wo_labels add_pr_wo_labels
|
13
|
+
pulls filter_issues_by_milestone author
|
14
|
+
unreleased_only unreleased unreleased_label
|
15
|
+
compare_link include_labels exclude_labels
|
16
|
+
bug_labels enhancement_labels
|
17
|
+
between_tags exclude_tags since_tag max_issues
|
18
|
+
github_site github_endpoint simple_list
|
19
|
+
future_release verbose release_url )
|
20
|
+
|
21
|
+
OPTIONS.each do |o|
|
22
|
+
attr_accessor o.to_sym
|
23
|
+
end
|
24
|
+
|
25
|
+
# Public: Initialise a new GitHubChangelogGenerator::RakeTask.
|
26
|
+
#
|
27
|
+
# Example
|
28
|
+
#
|
29
|
+
# GitHubChangelogGenerator::RakeTask.new
|
30
|
+
def initialize(*args, &task_block)
|
31
|
+
@name = args.shift || :changelog
|
32
|
+
|
33
|
+
define(args, &task_block)
|
34
|
+
end
|
35
|
+
|
36
|
+
def define(args, &task_block)
|
37
|
+
desc "Generate a Change log from GitHub"
|
38
|
+
|
39
|
+
task_block.call(*[self, args].slice(0, task_block.arity)) if task_block
|
40
|
+
|
41
|
+
# clear any (auto-)pre-existing task
|
42
|
+
Rake::Task[@name].clear if Rake::Task.task_defined?(@name)
|
43
|
+
|
44
|
+
task @name do
|
45
|
+
# mimick parse_options
|
46
|
+
options = Parser.get_default_options
|
47
|
+
|
48
|
+
if options[:user].nil? || options[:project].nil?
|
49
|
+
Parser.detect_user_and_project(options)
|
50
|
+
end
|
51
|
+
|
52
|
+
OPTIONS.each do |o|
|
53
|
+
v = instance_variable_get("@#{o}")
|
54
|
+
options[o.to_sym] = v if v
|
55
|
+
end
|
56
|
+
|
57
|
+
generator = Generator.new options
|
58
|
+
|
59
|
+
log = generator.compound_changelog
|
60
|
+
|
61
|
+
output_filename = "#{options[:output]}"
|
62
|
+
File.open(output_filename, "w") { |file| file.write(log) }
|
63
|
+
puts "Done!"
|
64
|
+
puts "Generated log placed in #{Dir.pwd}/#{output_filename}"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -89,6 +89,74 @@ describe GitHubChangelogGenerator::Generator do
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
|
+
describe "#filter_since_tag" do
|
93
|
+
context "with filled array" do
|
94
|
+
subject { generator.filter_since_tag(tags_mash_from_strings(%w(1 2 3))) }
|
95
|
+
|
96
|
+
context "with valid since tag" do
|
97
|
+
let(:generator) { GitHubChangelogGenerator::Generator.new(since_tag: "2") }
|
98
|
+
it { is_expected.to be_a Array }
|
99
|
+
it { is_expected.to match_array(tags_mash_from_strings(%w(1))) }
|
100
|
+
end
|
101
|
+
|
102
|
+
context "with invalid since tag" do
|
103
|
+
let(:generator) { GitHubChangelogGenerator::Generator.new(since_tag: "Invalid tag") }
|
104
|
+
it { is_expected.to be_a Array }
|
105
|
+
it { is_expected.to match_array(tags_mash_from_strings(%w(1 2 3))) }
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
context "with empty array" do
|
110
|
+
subject { generator.filter_since_tag(tags_mash_from_strings(%w())) }
|
111
|
+
|
112
|
+
context "with valid since tag" do
|
113
|
+
let(:generator) { GitHubChangelogGenerator::Generator.new(since_tag: "2") }
|
114
|
+
it { is_expected.to be_a Array }
|
115
|
+
it { is_expected.to match_array(tags_mash_from_strings(%w())) }
|
116
|
+
end
|
117
|
+
|
118
|
+
context "with invalid since tag" do
|
119
|
+
let(:generator) { GitHubChangelogGenerator::Generator.new(since_tag: "Invalid tag") }
|
120
|
+
it { is_expected.to be_a Array }
|
121
|
+
it { is_expected.to match_array(tags_mash_from_strings(%w())) }
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
describe "#filter_due_tag" do
|
127
|
+
context "with filled array" do
|
128
|
+
subject { generator.filter_due_tag(tags_mash_from_strings(%w(1 2 3))) }
|
129
|
+
|
130
|
+
context "with valid due tag" do
|
131
|
+
let(:generator) { GitHubChangelogGenerator::Generator.new(due_tag: "2") }
|
132
|
+
it { is_expected.to be_a Array }
|
133
|
+
it { is_expected.to match_array(tags_mash_from_strings(%w(3))) }
|
134
|
+
end
|
135
|
+
|
136
|
+
context "with invalid due tag" do
|
137
|
+
let(:generator) { GitHubChangelogGenerator::Generator.new(due_tag: "Invalid tag") }
|
138
|
+
it { is_expected.to be_a Array }
|
139
|
+
it { is_expected.to match_array(tags_mash_from_strings(%w(1 2 3))) }
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
context "with empty array" do
|
144
|
+
subject { generator.filter_due_tag(tags_mash_from_strings(%w())) }
|
145
|
+
|
146
|
+
context "with valid due tag" do
|
147
|
+
let(:generator) { GitHubChangelogGenerator::Generator.new(due_tag: "2") }
|
148
|
+
it { is_expected.to be_a Array }
|
149
|
+
it { is_expected.to match_array(tags_mash_from_strings(%w())) }
|
150
|
+
end
|
151
|
+
|
152
|
+
context "with invalid due tag" do
|
153
|
+
let(:generator) { GitHubChangelogGenerator::Generator.new(due_tag: "Invalid tag") }
|
154
|
+
it { is_expected.to be_a Array }
|
155
|
+
it { is_expected.to match_array(tags_mash_from_strings(%w())) }
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
92
160
|
describe "#get_time_of_tag" do
|
93
161
|
current_time = Time.now
|
94
162
|
before(:all) { @generator = GitHubChangelogGenerator::Generator.new }
|
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.
|
4
|
+
version: 1.8.0
|
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-
|
11
|
+
date: 2015-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: github_api
|
@@ -102,6 +102,7 @@ files:
|
|
102
102
|
- lib/github_changelog_generator/helper.rb
|
103
103
|
- lib/github_changelog_generator/parser.rb
|
104
104
|
- lib/github_changelog_generator/reader.rb
|
105
|
+
- lib/github_changelog_generator/task.rb
|
105
106
|
- lib/github_changelog_generator/version.rb
|
106
107
|
- spec/files/angular.js.md
|
107
108
|
- spec/files/bundler.md
|