Compare commits

..

48 Commits

Author SHA1 Message Date
Petr Korolev
5f60c19ef2 Merge branch 'dev/pr_labels' of https://github.com/raphink/github-changelog-generator into raphink-dev/pr_labels 2015-08-25 16:11:17 +03:00
Petr Korolev
83ae430dd8 update change log 2015-08-25 16:08:58 +03:00
Petr Korolev
8c0974200c Merge pull request #267 from raphink/dev/older_tag
Use since_tag as default for older_tag
2015-08-25 16:08:06 +03:00
Petr Korolev
28e3ed2500 Merge branch 'develop' 2015-08-25 15:25:00 +03:00
Petr Korolev
1bf5644a72 Merge branch 'feature/fix-262' into develop 2015-08-25 15:15:41 +03:00
Petr Korolev
bc37d0277b update change log 2015-08-25 15:15:30 +03:00
Petr Korolev
c4846b7ef9 Merge branch 'develop' into feature/fix-262 2015-08-25 15:10:04 +03:00
Petr Korolev
d09dad30f4 update change log 2015-08-25 15:08:09 +03:00
Raphaël Pinson
31e98fbc41 Use since_tag as default for older_tag 2015-08-25 13:55:29 +02:00
Petr Korolev
82dd0b3cce This commit close #262 2015-08-25 14:27:40 +03:00
Petr Korolev
1ae86e3cb2 rename and convert string to sybol 2015-08-25 13:14:04 +03:00
Raphaël Pinson
b3eea83ae1 Honor labels in PRs, fix #266 2015-08-25 10:28:27 +02:00
Petr Korolev
7e4d546f60 Merge branch 'hotfix/update-changelog' into develop 2015-08-24 18:31:55 +03:00
Petr Korolev
be62b92fa9 Merge branch 'hotfix/update-changelog' 2015-08-24 18:31:53 +03:00
Petr Korolev
0b6d751388 Update changelog for version 1.8.0 2015-08-24 18:31:31 +03:00
Petr Korolev
410921f673 Merge branch 'release/1.8.0' into develop 2015-08-24 17:55:25 +03:00
Petr Korolev
8b49b5ac0c Merge branch 'release/1.8.0' 2015-08-24 17:55:25 +03:00
Petr Korolev
d7b5d77bbf Update gemspec to version 1.8.0 2015-08-24 17:55:23 +03:00
Petr Korolev
ddf2624bf9 Merge branch 'develop' 2015-08-24 17:53:06 +03:00
Petr Korolev
80b40d1b36 Merge branch 'feature/due-tag' into develop 2015-08-24 17:52:09 +03:00
Petr Korolev
e8e4628261 Merge branch 'master' into develop 2015-08-24 17:51:14 +03:00
Petr Korolev
4261c3494e Add due-tag option and tests 2015-08-24 17:29:07 +03:00
Petr Korolev
d138644925 add docs 2015-08-24 16:47:37 +03:00
Petr Korolev
0301dcb672 Merge pull request #264 from raphink/dev/release_url
Add release_url to rake task options
2015-08-24 16:01:42 +03:00
Raphaël Pinson
73d4415e14 Add release_url to rake task options 2015-08-24 14:55:57 +02:00
Petr Korolev
ed179ed7be Merge branch 'master' into develop 2015-08-24 14:54:53 +03:00
Petr Korolev
0930cfdd88 Update README.md 2015-08-24 14:54:41 +03:00
Petr Korolev
c140349a73 git push origin masterMerge branch 'raphink-dev/no_replace' 2015-08-24 14:43:39 +03:00
Petr Korolev
8c35215697 Merge branch 'dev/no_replace' of https://github.com/raphink/github-changelog-generator into raphink-dev/no_replace 2015-08-24 14:43:05 +03:00
Petr Korolev
840b6666e0 Merge pull request #263 from skywinder/revert-261-patch-1
Revert "Fixed Readme, I think"
2015-08-24 14:38:34 +03:00
Petr Korolev
7b7c6fc793 Revert "Fixed Readme, I think" 2015-08-24 14:28:22 +03:00
Petr Korolev
2357875c13 Merge pull request #261 from dpwspoon/patch-1
Fixed Readme, I think
2015-08-24 14:05:22 +03:00
David Witherspoon
cac840c57d Fixed Readme, I think
I don't know where a 16 digit token comes from.  But the 40 digit token works.  So I think this is a typo.
2015-08-21 09:31:01 -07:00
Raphaël Pinson
9acca33bc2 Test if @options[:base] is set 2015-08-12 16:35:47 +02:00
Petr Korolev
4aa9c61520 Merge pull request #259 from raphink/dev/release_url
Add release_url option
2015-08-09 17:08:52 +03:00
Petr Korolev
f49949147c Merge pull request #260 from raphink/dev/rake_task
Add a rake task
2015-08-09 17:06:32 +03:00
Raphaël Pinson
bfae7b9a45 Auto detect since tag from base file 2015-08-05 10:57:08 +02:00
Raphaël Pinson
4202b95076 Add --base option 2015-08-05 10:40:28 +02:00
Raphaël Pinson
4856a3c8e9 Add release_url option 2015-08-05 10:31:16 +02:00
Raphaël Pinson
5d9b44eac3 Add a rake task 2015-08-05 10:26:29 +02:00
Petr Korolev
295cfbc767 Merge pull request #257 from raphink/dev/since_tag
Add --since-tag, close
2015-08-04 18:42:03 +03:00
Raphaël Pinson
32f4df5742 Add --since-tag option
Fix #254
2015-08-04 16:15:33 +02:00
Raphaël Pinson
0190d417c2 Typo 2015-08-04 14:56:39 +02:00
Petr Korolev
b6efcfced8 Merge branch 'hotfix/update-changelog' into develop 2015-07-16 17:26:54 +03:00
Petr Korolev
b74b457ad0 Merge branch 'hotfix/update-changelog' 2015-07-16 17:26:52 +03:00
Petr Korolev
83cc36959a update 2015-07-16 17:25:32 +03:00
Petr Korolev
2dbf975c06 Update changelog for version 1.7.0 2015-07-16 17:23:52 +03:00
Petr Korolev
63e91d8e72 Merge branch 'release/1.7.0' into develop 2015-07-16 17:22:58 +03:00
14 changed files with 520 additions and 294 deletions

View File

@@ -1,7 +1,39 @@
# Change Log
## [1.6.2](https://github.com/skywinder/github-changelog-generator/tree/1.6.2) (2015-07-16)
## [Unreleased](https://github.com/skywinder/github-changelog-generator/tree/HEAD)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.8.0...HEAD)
**Merged pull requests:**
- Fix issue with missing events \(in case of events for issue \>30\) [\#268](https://github.com/skywinder/github-changelog-generator/pull/268) ([skywinder](https://github.com/skywinder))
- Use since\_tag as default for older\_tag [\#267](https://github.com/skywinder/github-changelog-generator/pull/267) ([raphink](https://github.com/raphink))
## [1.8.0](https://github.com/skywinder/github-changelog-generator/tree/1.8.0) (2015-08-24)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.7.0...1.8.0)
**Implemented enhancements:**
- Generate change log since/due specific tag [\#254](https://github.com/skywinder/github-changelog-generator/issues/254)
**Merged pull requests:**
- Add `--due-tag` option [\#265](https://github.com/skywinder/github-changelog-generator/pull/265) ([skywinder](https://github.com/skywinder))
- Add release\_url to rake task options [\#264](https://github.com/skywinder/github-changelog-generator/pull/264) ([raphink](https://github.com/raphink))
- Add a rake task [\#260](https://github.com/skywinder/github-changelog-generator/pull/260) ([raphink](https://github.com/raphink))
- Add release\_url option [\#259](https://github.com/skywinder/github-changelog-generator/pull/259) ([raphink](https://github.com/raphink))
- Add --base option [\#258](https://github.com/skywinder/github-changelog-generator/pull/258) ([raphink](https://github.com/raphink))
- Add --since-tag [\#257](https://github.com/skywinder/github-changelog-generator/pull/257) ([raphink](https://github.com/raphink))
## [1.7.0](https://github.com/skywinder/github-changelog-generator/tree/1.7.0) (2015-07-16)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.6.2...1.7.0)
**Implemented enhancements:**
- Custom header [\#251](https://github.com/skywinder/github-changelog-generator/issues/251)
- Arbitrary templates [\#242](https://github.com/skywinder/github-changelog-generator/issues/242)
## [1.6.2](https://github.com/skywinder/github-changelog-generator/tree/1.6.2) (2015-07-16)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.6.1...1.6.2)
**Fixed bugs:**
@@ -9,7 +41,6 @@
- --unreleased-only broken [\#250](https://github.com/skywinder/github-changelog-generator/issues/250)
## [1.6.1](https://github.com/skywinder/github-changelog-generator/tree/1.6.1) (2015-06-12)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.6.0...1.6.1)
**Implemented enhancements:**
@@ -21,33 +52,26 @@
- not encapsulated character `\<` [\#249](https://github.com/skywinder/github-changelog-generator/issues/249)
## [1.6.0](https://github.com/skywinder/github-changelog-generator/tree/1.6.0) (2015-06-11)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.5.0...1.6.0)
**Implemented enhancements:**
- Issues with any label except "bug", "enhancement" should not be excluded by default. [\#240](https://github.com/skywinder/github-changelog-generator/issues/240)
- Add ability to specify custom labels for enhancements & bugfixes [\#54](https://github.com/skywinder/github-changelog-generator/issues/54)
**Fixed bugs:**
- --user and --project options are broken [\#246](https://github.com/skywinder/github-changelog-generator/issues/246)
- Exclude and Include tags is broken [\#245](https://github.com/skywinder/github-changelog-generator/issues/245)
## [1.5.0](https://github.com/skywinder/github-changelog-generator/tree/1.5.0) (2015-05-26)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.4.1...1.5.0)
**Implemented enhancements:**
- Show `Unreleased` section even when there is no tags in repo. [\#228](https://github.com/skywinder/github-changelog-generator/issues/228)
- Add option `--exclude-tags x,y,z` [\#214](https://github.com/skywinder/github-changelog-generator/issues/214)
- Generate change log between 2 specific tags [\#172](https://github.com/skywinder/github-changelog-generator/issues/172)
- Yanked releases support [\#53](https://github.com/skywinder/github-changelog-generator/issues/53)
**Merged pull requests:**
@@ -55,7 +79,6 @@
- Big refactoring [\#243](https://github.com/skywinder/github-changelog-generator/pull/243) ([skywinder](https://github.com/skywinder))
## [1.4.1](https://github.com/skywinder/github-changelog-generator/tree/1.4.1) (2015-05-19)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.4.0...1.4.1)
**Implemented enhancements:**
@@ -65,27 +88,21 @@
**Fixed bugs:**
- github\_changelog\_generator.rb:220:in ``': No such file or directory - pwd \(Errno::ENOENT\) [\#237](https://github.com/skywinder/github-changelog-generator/issues/237)
- Doesnot generator changelog [\#235](https://github.com/skywinder/github-changelog-generator/issues/235)
- Exclude closed \(not merged\) PR's from changelog. [\#69](https://github.com/skywinder/github-changelog-generator/issues/69)
**Merged pull requests:**
- Wrap GitHub requests in function check\_github\_response [\#238](https://github.com/skywinder/github-changelog-generator/pull/238) ([skywinder](https://github.com/skywinder))
- Add fetch token tests [\#236](https://github.com/skywinder/github-changelog-generator/pull/236) ([skywinder](https://github.com/skywinder))
- Add future release option [\#231](https://github.com/skywinder/github-changelog-generator/pull/231) ([sildur](https://github.com/sildur))
## [1.4.0](https://github.com/skywinder/github-changelog-generator/tree/1.4.0) (2015-05-07)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.11...1.4.0)
**Implemented enhancements:**
- Parsing of existing Change Log file [\#212](https://github.com/skywinder/github-changelog-generator/issues/212)
- Warn users about 0 tags in repo. [\#208](https://github.com/skywinder/github-changelog-generator/issues/208)
**Closed issues:**
@@ -95,21 +112,14 @@
**Merged pull requests:**
- Implement fetcher class [\#227](https://github.com/skywinder/github-changelog-generator/pull/227) ([skywinder](https://github.com/skywinder))
- Add coveralls integration [\#223](https://github.com/skywinder/github-changelog-generator/pull/223) ([skywinder](https://github.com/skywinder))
- Cleanup [\#220](https://github.com/skywinder/github-changelog-generator/pull/220) ([tuexss](https://github.com/tuexss))
- Rspec & rubocop integration [\#217](https://github.com/skywinder/github-changelog-generator/pull/217) ([skywinder](https://github.com/skywinder))
- Implement Reader class to parse ChangeLog.md [\#216](https://github.com/skywinder/github-changelog-generator/pull/216) ([estahn](https://github.com/estahn))
- Relatively require github\_changelog\_generator library [\#207](https://github.com/skywinder/github-changelog-generator/pull/207) ([sneal](https://github.com/sneal))
- Add --max-issues argument to limit requests [\#76](https://github.com/skywinder/github-changelog-generator/pull/76) ([sneal](https://github.com/sneal))
## [1.3.11](https://github.com/skywinder/github-changelog-generator/tree/1.3.11) (2015-03-21)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.10...1.3.11)
**Merged pull requests:**
@@ -117,7 +127,6 @@
- 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))
## [1.3.10](https://github.com/skywinder/github-changelog-generator/tree/1.3.10) (2015-03-18)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.9...1.3.10)
**Merged pull requests:**
@@ -125,7 +134,6 @@
- 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))
## [1.3.9](https://github.com/skywinder/github-changelog-generator/tree/1.3.9) (2015-03-06)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.8...1.3.9)
**Implemented enhancements:**
@@ -137,15 +145,12 @@
- Resolved concurrency problem in case of issues \> 2048 [\#65](https://github.com/skywinder/github-changelog-generator/pull/65) ([skywinder](https://github.com/skywinder))
## [1.3.8](https://github.com/skywinder/github-changelog-generator/tree/1.3.8) (2015-03-05)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.6...1.3.8)
## [1.3.6](https://github.com/skywinder/github-changelog-generator/tree/1.3.6) (2015-03-05)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.5...1.3.6)
## [1.3.5](https://github.com/skywinder/github-changelog-generator/tree/1.3.5) (2015-03-04)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.4...1.3.5)
**Fixed bugs:**
@@ -153,7 +158,6 @@
- Pull Requests in Wrong Tag [\#60](https://github.com/skywinder/github-changelog-generator/issues/60)
## [1.3.4](https://github.com/skywinder/github-changelog-generator/tree/1.3.4) (2015-03-03)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.3...1.3.4)
**Fixed bugs:**
@@ -161,7 +165,6 @@
- --no-issues appears to break PRs [\#59](https://github.com/skywinder/github-changelog-generator/issues/59)
## [1.3.3](https://github.com/skywinder/github-changelog-generator/tree/1.3.3) (2015-03-03)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.2...1.3.3)
**Closed issues:**
@@ -169,7 +172,6 @@
- Add \# character to encapsulate list. [\#58](https://github.com/skywinder/github-changelog-generator/issues/58)
## [1.3.2](https://github.com/skywinder/github-changelog-generator/tree/1.3.2) (2015-03-03)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.1...1.3.2)
**Fixed bugs:**
@@ -177,21 +179,16 @@
- generation failed if github commit api return `404 Not Found` [\#57](https://github.com/skywinder/github-changelog-generator/issues/57)
## [1.3.1](https://github.com/skywinder/github-changelog-generator/tree/1.3.1) (2015-02-27)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.3.0...1.3.1)
## [1.3.0](https://github.com/skywinder/github-changelog-generator/tree/1.3.0) (2015-02-26)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.8...1.3.0)
**Implemented enhancements:**
- Do not show `Unreleased` section, when it's empty. [\#55](https://github.com/skywinder/github-changelog-generator/issues/55)
- Separate list exclude and include labels [\#52](https://github.com/skywinder/github-changelog-generator/issues/52)
- Unreleased issues in separate section [\#47](https://github.com/skywinder/github-changelog-generator/issues/47)
- Separate by lists: Enhancements, Bugs, Pull requests. [\#31](https://github.com/skywinder/github-changelog-generator/issues/31)
**Fixed bugs:**
@@ -203,7 +200,6 @@
- Implement filtering of Pull Requests by milestones [\#50](https://github.com/skywinder/github-changelog-generator/pull/50) ([skywinder](https://github.com/skywinder))
## [1.2.8](https://github.com/skywinder/github-changelog-generator/tree/1.2.8) (2015-02-17)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.7...1.2.8)
**Closed issues:**
@@ -213,11 +209,9 @@
**Merged pull requests:**
- Feature/fix 37 [\#49](https://github.com/skywinder/github-changelog-generator/pull/49) ([skywinder](https://github.com/skywinder))
- Prettify output [\#48](https://github.com/skywinder/github-changelog-generator/pull/48) ([skywinder](https://github.com/skywinder))
## [1.2.7](https://github.com/skywinder/github-changelog-generator/tree/1.2.7) (2015-01-26)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.6...1.2.7)
**Merged pull requests:**
@@ -225,7 +219,6 @@
- Add compare link between older version and newer version [\#46](https://github.com/skywinder/github-changelog-generator/pull/46) ([sue445](https://github.com/sue445))
## [1.2.6](https://github.com/skywinder/github-changelog-generator/tree/1.2.6) (2015-01-21)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.5...1.2.6)
**Merged pull requests:**
@@ -233,7 +226,6 @@
- fix link tag format [\#45](https://github.com/skywinder/github-changelog-generator/pull/45) ([sugamasao](https://github.com/sugamasao))
## [1.2.5](https://github.com/skywinder/github-changelog-generator/tree/1.2.5) (2015-01-15)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.4...1.2.5)
**Implemented enhancements:**
@@ -247,27 +239,22 @@
**Merged pull requests:**
- PrettyPrint class is included using lowercase 'pp' [\#43](https://github.com/skywinder/github-changelog-generator/pull/43) ([schwing](https://github.com/schwing))
- support enterprise github via command line options [\#42](https://github.com/skywinder/github-changelog-generator/pull/42) ([glenlovett](https://github.com/glenlovett))
## [1.2.4](https://github.com/skywinder/github-changelog-generator/tree/1.2.4) (2014-12-16)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.3...1.2.4)
**Fixed bugs:**
- Sometimes user is NULL during merges [\#41](https://github.com/skywinder/github-changelog-generator/issues/41)
- Crash when try generate log for rails [\#35](https://github.com/skywinder/github-changelog-generator/issues/35)
## [1.2.3](https://github.com/skywinder/github-changelog-generator/tree/1.2.3) (2014-12-16)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.2...1.2.3)
**Implemented enhancements:**
- Add ability to run with one parameter instead -u -p [\#38](https://github.com/skywinder/github-changelog-generator/issues/38)
- Detailed output [\#33](https://github.com/skywinder/github-changelog-generator/issues/33)
**Fixed bugs:**
@@ -277,11 +264,9 @@
**Merged pull requests:**
- Implement async fetching [\#39](https://github.com/skywinder/github-changelog-generator/pull/39) ([skywinder](https://github.com/skywinder))
- Fix crash when user is NULL [\#40](https://github.com/skywinder/github-changelog-generator/pull/40) ([skywinder](https://github.com/skywinder))
## [1.2.2](https://github.com/skywinder/github-changelog-generator/tree/1.2.2) (2014-12-10)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.1...1.2.2)
**Fixed bugs:**
@@ -293,7 +278,6 @@
- Add a Bitdeli Badge to README [\#36](https://github.com/skywinder/github-changelog-generator/pull/36) ([bitdeli-chef](https://github.com/bitdeli-chef))
## [1.2.1](https://github.com/skywinder/github-changelog-generator/tree/1.2.1) (2014-11-22)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.2.0...1.2.1)
**Fixed bugs:**
@@ -303,23 +287,18 @@
**Merged pull requests:**
- Issues for last tag not in list [\#29](https://github.com/skywinder/github-changelog-generator/pull/29) ([skywinder](https://github.com/skywinder))
- Disable default --filter-pull-requests option. [\#28](https://github.com/skywinder/github-changelog-generator/pull/28) ([skywinder](https://github.com/skywinder))
## [1.2.0](https://github.com/skywinder/github-changelog-generator/tree/1.2.0) (2014-11-19)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.1.4...1.2.0)
**Merged pull requests:**
- 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))
- 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))
- 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))
## [1.1.4](https://github.com/skywinder/github-changelog-generator/tree/1.1.4) (2014-11-18)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.1.2...1.1.4)
**Implemented enhancements:**
@@ -331,29 +310,23 @@
- Sort tags by date [\#23](https://github.com/skywinder/github-changelog-generator/pull/23) ([skywinder](https://github.com/skywinder))
## [1.1.2](https://github.com/skywinder/github-changelog-generator/tree/1.1.2) (2014-11-12)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.1.1...1.1.2)
**Merged pull requests:**
- Fix bug with dot signs in project name [\#18](https://github.com/skywinder/github-changelog-generator/pull/18) ([skywinder](https://github.com/skywinder))
- Fix bug with dot signs in user name [\#17](https://github.com/skywinder/github-changelog-generator/pull/17) ([skywinder](https://github.com/skywinder))
## [1.1.1](https://github.com/skywinder/github-changelog-generator/tree/1.1.1) (2014-11-10)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.1.0...1.1.1)
**Merged pull requests:**
- 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))
- Sort issues by tags [\#14](https://github.com/skywinder/github-changelog-generator/pull/14) ([skywinder](https://github.com/skywinder))
- 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))
## [1.1.0](https://github.com/skywinder/github-changelog-generator/tree/1.1.0) (2014-11-10)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.0.1...1.1.0)
**Implemented enhancements:**
@@ -363,21 +336,17 @@
**Fixed bugs:**
- Bug with wrong credentials in 1.0.1 [\#12](https://github.com/skywinder/github-changelog-generator/issues/12)
- Markdown formating in the last line wrong [\#9](https://github.com/skywinder/github-changelog-generator/issues/9)
## [1.0.1](https://github.com/skywinder/github-changelog-generator/tree/1.0.1) (2014-11-10)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/1.0.0...1.0.1)
## [1.0.0](https://github.com/skywinder/github-changelog-generator/tree/1.0.0) (2014-11-07)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/0.1.0...1.0.0)
**Implemented enhancements:**
- Add support for fixed issues and implemented enchanments. [\#6](https://github.com/skywinder/github-changelog-generator/issues/6)
- Implement option to specify output filename [\#4](https://github.com/skywinder/github-changelog-generator/issues/4)
**Fixed bugs:**
@@ -387,27 +356,21 @@
**Merged pull requests:**
- Implement support of different tags. [\#8](https://github.com/skywinder/github-changelog-generator/pull/8) ([skywinder](https://github.com/skywinder))
- Add support for issues in CHANGELOG [\#7](https://github.com/skywinder/github-changelog-generator/pull/7) ([skywinder](https://github.com/skywinder))
## [0.1.0](https://github.com/skywinder/github-changelog-generator/tree/0.1.0) (2014-11-07)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/0.0.2...0.1.0)
**Merged pull requests:**
- Fix parsing date of pull request [\#3](https://github.com/skywinder/github-changelog-generator/pull/3) ([skywinder](https://github.com/skywinder))
- Add changelog generation for last tag [\#2](https://github.com/skywinder/github-changelog-generator/pull/2) ([skywinder](https://github.com/skywinder))
- 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))
## [0.0.2](https://github.com/skywinder/github-changelog-generator/tree/0.0.2) (2014-11-06)
[Full Changelog](https://github.com/skywinder/github-changelog-generator/compare/0.0.1...0.0.2)
## [0.0.1](https://github.com/skywinder/github-changelog-generator/tree/0.0.1) (2014-11-06)
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*

View File

@@ -1,7 +1,7 @@
PATH
remote: .
specs:
github_changelog_generator (1.6.2)
github_changelog_generator (1.8.0)
colorize (~> 0.7)
github_api (~> 0.12)
@@ -29,13 +29,13 @@ GEM
unf (>= 0.0.5, < 1.0.0)
faraday (0.9.1)
multipart-post (>= 1.2, < 3)
github_api (0.12.3)
github_api (0.12.4)
addressable (~> 2.3)
descendants_tracker (~> 0.0.4)
faraday (~> 0.8, < 0.10)
hashie (>= 3.3)
hashie (>= 3.4)
multi_json (>= 1.7.5, < 2.0)
nokogiri (~> 1.6.3)
nokogiri (~> 1.6.6)
oauth2
hashie (3.4.2)
http-cookie (1.0.2)
@@ -112,3 +112,6 @@ DEPENDENCIES
rspec (~> 3.2)
rubocop (~> 0.31)
simplecov (~> 0.10)
BUNDLED WITH
1.10.6

View File

@@ -92,7 +92,7 @@ Since GitHub allows you to make only 50 requests without authentication it's rec
And:
- Run with key `-t [your-16-digit-token]`
- Run with key `-t [your-40-digit-token]`
- Or set environment variable `CHANGELOG_GITHUB_TOKEN` and specify there your token.
i.e. add to your `~/.bash_profile` or `~/.zshrc` or any other place to load ENV variables string :
@@ -104,6 +104,28 @@ So, if you got error like this:
It's time to create this token or wait for 1 hour before GitHub reset the counter for your IP.
## Migrating from a manual changelog
Knowing how dedicated you are to your project, you probably haven't been waiting for github-changelog-generator to keep a changelog,
but you most likely wouln't like to have to open issues and PRs for all past features listed in your historic changelog.
That's where `--base` comes handy. This option lets you pass a static changelog to be appended at the end of the generated entries.
If you have a `HISTORY.md` file in your project, it will automatically be picked as the static historical changelog and appended.
### Rake task
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:
```ruby
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
config.since_tag = '0.1.14'
config.future_release = '0.2.0'
end
```
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.
##Features and advantages of this project
- Generate canonical, neat change log file, followed by [basic change log guidelines](http://keepachangelog.com/) :gem:
- Possible to generate **Unreleased** changes (closed issues that have not released yet) :dizzy:

View File

@@ -21,6 +21,8 @@
**Merged pull requests:**
- This a PR with a lot of comments and events [\#17](https://github.com/skywinder/changelog_test/pull/17) ([skywinder](https://github.com/skywinder))
- PR [\#16](https://github.com/skywinder/changelog_test/pull/16) ([skywinder](https://github.com/skywinder))
- This PR closes 14 from commit [\#15](https://github.com/skywinder/changelog_test/pull/15) ([skywinder](https://github.com/skywinder))
- This PR to close \#12 from body [\#13](https://github.com/skywinder/changelog_test/pull/13) ([skywinder](https://github.com/skywinder))

View File

@@ -163,10 +163,13 @@ Make sure, that you push tags to remote repo via 'git push --tags'".yellow
issues_slice.each do |issue|
threads << Thread.new do
begin
obj = @github.issues.events.list user: @options[:user],
response = @github.issues.events.list user: @options[:user],
repo: @options[:project],
issue_number: issue["number"]
issue[:events] = obj.body
issue[:events] = []
response.each_page do |page|
issue[:events].concat(page)
end
rescue
Helper.log.warn GH_RATE_LIMIT_EXCEEDED_MSG.yellow
end

View File

@@ -66,7 +66,7 @@ module GitHubChangelogGenerator
if @options[:issues]
# Generate issues:
log += issues_to_log(issues)
log += issues_to_log(issues, pull_requests)
end
if @options[:pulls]
@@ -77,13 +77,14 @@ module GitHubChangelogGenerator
log
end
# Generate ready-to-paste log from list of issues.
# Generate ready-to-paste log from list of issues and pull requests.
#
# @param [Array] issues
# @param [Array] pull_requests
# @return [String] generated log for issues
def issues_to_log(issues)
def issues_to_log(issues, pull_requests)
log = ""
bugs_a, enhancement_a, issues_a = parse_by_sections(issues)
bugs_a, enhancement_a, issues_a = parse_by_sections(issues, pull_requests)
log += generate_sub_section(enhancement_a, @options[:enhancement_prefix])
log += generate_sub_section(bugs_a, @options[:bug_prefix])
@@ -95,8 +96,9 @@ module GitHubChangelogGenerator
# (bugs, features, or just closed issues) by labels
#
# @param [Array] issues
# @param [Array] pull_requests
# @return [Array] tuple of filtered arrays: (Bugs, Enhancements Issues)
def parse_by_sections(issues)
def parse_by_sections(issues, pull_requests)
issues_a = []
enhancement_a = []
bugs_a = []
@@ -117,6 +119,24 @@ module GitHubChangelogGenerator
end
issues_a.push dict unless added
end
pull_requests.each do |dict|
added = false
dict.labels.each do |label|
if @options[:bug_labels].include? label.name
bugs_a.push dict
added = true
next
end
if @options[:enhancement_labels].include? label.name
enhancement_a.push dict
added = true
next
end
end
pull_requests.delete(dict) if added
end
[bugs_a, enhancement_a, issues_a]
end
end

View File

@@ -48,11 +48,11 @@ module GitHubChangelogGenerator
# Fill :actual_date parameter of specified issue by closed date of the commit, if it was closed by commit.
# @param [Hash] issue
def find_closed_date_by_commit(issue)
unless issue["events"].nil?
unless issue[:events].nil?
# if it's PR -> then find "merged event", in case of usual issue -> fond closed date
compare_string = issue[:merged_at].nil? ? "closed" : "merged"
# reverse! - to find latest closed event. (event goes in date order)
issue["events"].reverse!.each do |event|
issue[:events].reverse!.each do |event|
if event[:event].eql? compare_string
set_date_from_event(event, issue)
break

View File

@@ -16,6 +16,8 @@ module GitHubChangelogGenerator
log += generate_log_for_all_tags
end
log += File.read(@options[:base]) if File.file?(@options[:base])
log += "\n\n\\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*"
@log = log
end
@@ -76,10 +78,15 @@ module GitHubChangelogGenerator
time_string = newer_tag_time.strftime @options[:date_format]
# Generate tag name and link
if newer_tag_name.equal? @options[:unreleased_label]
log += "## [#{newer_tag_name}](#{project_url}/tree/#{newer_tag_link})\n\n"
if @options[:release_url]
release_url = format(@options[:release_url], newer_tag_link)
else
log += "## [#{newer_tag_name}](#{project_url}/tree/#{newer_tag_link}) (#{time_string})\n"
release_url = "#{project_url}/tree/#{newer_tag_link}"
end
if newer_tag_name.equal? @options[:unreleased_label]
log += "## [#{newer_tag_name}](#{release_url})\n\n"
else
log += "## [#{newer_tag_name}](#{release_url}) (#{time_string})\n"
end
if @options[:compare_link] && older_tag_link
@@ -96,7 +103,7 @@ module GitHubChangelogGenerator
def generate_log_between_tags(older_tag, newer_tag)
filtered_issues, filtered_pull_requests = filter_issues_for_tags(newer_tag, older_tag)
older_tag_name = older_tag.nil? ? nil : older_tag["name"]
older_tag_name = older_tag.nil? ? detect_since_tag : older_tag["name"]
if newer_tag.nil? && filtered_issues.empty? && filtered_pull_requests.empty?
# do not generate empty unreleased section

View File

@@ -63,21 +63,21 @@ module GitHubChangelogGenerator
end
# Method filter issues, that belong only specified tag range
# @param [Array] array of issues to filter
# @param [Array] issues issues to filter
# @param [Symbol] hash_key key of date value default is :actual_date
# @param [String] older_tag all issues before this tag date will be excluded. May be nil, if it's first tag
# @param [String] newer_tag all issue after this tag will be excluded. May be nil for unreleased section
# @return [Array] filtered issues
def delete_by_time(array, hash_key = :actual_date, older_tag = nil, newer_tag = nil)
def delete_by_time(issues, hash_key = :actual_date, older_tag = nil, newer_tag = nil)
# in case if not tags specified - return unchanged array
return array if older_tag.nil? && newer_tag.nil?
return issues if older_tag.nil? && newer_tag.nil?
newer_tag_time = newer_tag && get_time_of_tag(newer_tag)
older_tag_time = older_tag && get_time_of_tag(older_tag)
array.select do |req|
if req[hash_key]
time = Time.parse(req[hash_key]).utc
issues.select do |issue|
if issue[hash_key]
time = Time.parse(issue[hash_key]).utc
tag_in_range_old = tag_newer_old_tag?(older_tag_time, time)

View File

@@ -52,14 +52,69 @@ module GitHubChangelogGenerator
[newer_tag_link, newer_tag_name, newer_tag_time]
end
# @return [Object] try to find newest tag using #Reader and :base option if specified otherwise returns nil
def detect_since_tag
@since_tag ||= @options[:since_tag]
if @since_tag.nil? && @options[:base] && File.file?(@options[:base])
reader = GitHubChangelogGenerator::Reader.new
content = reader.read(@options[:base])
@since_tag = content[0]["version"] if content
end
@since_tag
end
# Return tags after filtering tags in lists provided by option: --between-tags & --exclude-tags
#
# @return [Array]
def get_filtered_tags(all_tags)
filtered_tags = filter_between_tags(all_tags)
filtered_tags = filter_since_tag(all_tags)
filtered_tags = filter_between_tags(filtered_tags)
filter_excluded_tags(filtered_tags)
end
# @param [Array] all_tags all tags
# @return [Array] filtered tags according :since_tag option
def filter_since_tag(all_tags)
filtered_tags = all_tags
tag = detect_since_tag
if tag
if all_tags.map(&:name).include? tag
idx = all_tags.index { |t| t.name == tag }
if idx > 0
filtered_tags = all_tags[0..idx - 1]
else
filtered_tags = []
end
else
Helper.log.warn "Warning: can't find tag #{tag}, specified with --since-tag option."
end
end
filtered_tags
end
# @param [Array] all_tags all tags
# @return [Array] filtered tags according :due_tag option
def filter_due_tag(all_tags)
filtered_tags = all_tags
tag = @options[:due_tag]
if tag
if (all_tags.count > 0) && (all_tags.map(&:name).include? tag)
idx = all_tags.index { |t| t.name == tag }
last_index = all_tags.count - 1
if idx > 0 && idx < last_index
filtered_tags = all_tags[idx + 1..last_index]
else
filtered_tags = []
end
else
Helper.log.warn "Warning: can't find tag #{tag}, specified with --due-tag option."
end
end
filtered_tags
end
# @param [Array] all_tags all tags
# @return [Array] filtered tags according :between_tags option
def filter_between_tags(all_tags)
filtered_tags = all_tags
if @options[:between_tags]
@@ -73,6 +128,8 @@ module GitHubChangelogGenerator
filtered_tags
end
# @param [Array] all_tags all tags
# @return [Array] filtered tags according :exclude_tags option
def filter_excluded_tags(all_tags)
filtered_tags = all_tags
if @options[:exclude_tags]

View File

@@ -14,7 +14,7 @@ module GitHubChangelogGenerator
parser.parse!
if options[:user].nil? || options[:project].nil?
detect_user_and_project(options)
detect_user_and_project(options, ARGV[0], ARGV[1])
end
if !options[:user] || !options[:project]
@@ -50,6 +50,9 @@ module GitHubChangelogGenerator
opts.on("-o", "--output [NAME]", "Output file. Default is CHANGELOG.md") do |last|
options[:output] = last
end
opts.on("-b", "--base [NAME]", "Optional base file to append generated changes to.") do |last|
options[:base] = last
end
opts.on("--bugs-label [LABEL]", "Setup custom label for bug-fixes section. Default is \"**Fixed bugs:**""") do |v|
options[:bug_prefix] = v
end
@@ -110,12 +113,21 @@ module GitHubChangelogGenerator
opts.on("--between-tags x,y,z", Array, "Change log will be filled only between specified tags") do |list|
options[:between_tags] = list
end
opts.on("--exclude-tags x,y,z", Array, "Change log will be exclude specified tags") do |list|
opts.on("--exclude-tags x,y,z", Array, "Change log will exclude specified tags") do |list|
options[:exclude_tags] = list
end
opts.on("--since-tag x", "Change log will start after specified tag") do |v|
options[:since_tag] = v
end
opts.on("--due-tag x", "Change log will end before specified tag") do |v|
options[:due_tag] = v
end
opts.on("--max-issues [NUMBER]", Integer, "Max number of issues to fetch from GitHub. Default is unlimited") do |max|
options[:max_issues] = max
end
opts.on("--release-url [URL]", "The URL to point to for release links, in printf format (with the tag as variable).") do |url|
options[:release_url] = url
end
opts.on("--github-site [URL]", "The Enterprise Github site on which your project is hosted.") do |last|
options[:github_site] = last
end
@@ -150,6 +162,7 @@ module GitHubChangelogGenerator
tag2: nil,
date_format: "%Y-%m-%d",
output: "CHANGELOG.md",
base: "HISTORY.md",
issues: true,
add_issues_wo_labels: true,
add_pr_wo_labels: true,
@@ -177,8 +190,8 @@ module GitHubChangelogGenerator
end
# Detects user and project from git
def self.detect_user_and_project(options)
options[:user], options[:project] = user_project_from_option(ARGV[0], ARGV[1], options[:github_site])
def self.detect_user_and_project(options, arg0 = nil, arg1 = nil)
options[:user], options[:project] = user_project_from_option(arg0, arg1, options[:github_site])
if !options[:user] || !options[:project]
if ENV["RUBYLIB"] =~ /ruby-debug-ide/
options[:user] = "skywinder"

View File

@@ -0,0 +1,68 @@
require "rake"
require "rake/tasklib"
require "github_changelog_generator"
module GitHubChangelogGenerator
class RakeTask < ::Rake::TaskLib
include ::Rake::DSL if defined?(::Rake::DSL)
OPTIONS = %w( user project token date_format output
bug_prefix enhancement_prefix issue_prefix
header merge_prefix issues
add_issues_wo_labels add_pr_wo_labels
pulls filter_issues_by_milestone author
unreleased_only unreleased unreleased_label
compare_link include_labels exclude_labels
bug_labels enhancement_labels
between_tags exclude_tags since_tag max_issues
github_site github_endpoint simple_list
future_release verbose release_url )
OPTIONS.each do |o|
attr_accessor o.to_sym
end
# Public: Initialise a new GitHubChangelogGenerator::RakeTask.
#
# Example
#
# GitHubChangelogGenerator::RakeTask.new
def initialize(*args, &task_block)
@name = args.shift || :changelog
define(args, &task_block)
end
def define(args, &task_block)
desc "Generate a Change log from GitHub"
task_block.call(*[self, args].slice(0, task_block.arity)) if task_block
# clear any (auto-)pre-existing task
Rake::Task[@name].clear if Rake::Task.task_defined?(@name)
task @name do
# mimick parse_options
options = Parser.get_default_options
if options[:user].nil? || options[:project].nil?
Parser.detect_user_and_project(options)
end
OPTIONS.each do |o|
v = instance_variable_get("@#{o}")
options[o.to_sym] = v if v
end
generator = Generator.new options
log = generator.compound_changelog
output_filename = "#{options[:output]}"
File.open(output_filename, "w") { |file| file.write(log) }
puts "Done!"
puts "Generated log placed in #{Dir.pwd}/#{output_filename}"
end
end
end
end

View File

@@ -1,3 +1,3 @@
module GitHubChangelogGenerator
VERSION = "1.7.0"
VERSION = "1.8.0"
end

View File

@@ -89,6 +89,74 @@ describe GitHubChangelogGenerator::Generator do
end
end
describe "#filter_since_tag" do
context "with filled array" do
subject { generator.filter_since_tag(tags_mash_from_strings(%w(1 2 3))) }
context "with valid since tag" do
let(:generator) { GitHubChangelogGenerator::Generator.new(since_tag: "2") }
it { is_expected.to be_a Array }
it { is_expected.to match_array(tags_mash_from_strings(%w(1))) }
end
context "with invalid since tag" do
let(:generator) { GitHubChangelogGenerator::Generator.new(since_tag: "Invalid tag") }
it { is_expected.to be_a Array }
it { is_expected.to match_array(tags_mash_from_strings(%w(1 2 3))) }
end
end
context "with empty array" do
subject { generator.filter_since_tag(tags_mash_from_strings(%w())) }
context "with valid since tag" do
let(:generator) { GitHubChangelogGenerator::Generator.new(since_tag: "2") }
it { is_expected.to be_a Array }
it { is_expected.to match_array(tags_mash_from_strings(%w())) }
end
context "with invalid since tag" do
let(:generator) { GitHubChangelogGenerator::Generator.new(since_tag: "Invalid tag") }
it { is_expected.to be_a Array }
it { is_expected.to match_array(tags_mash_from_strings(%w())) }
end
end
end
describe "#filter_due_tag" do
context "with filled array" do
subject { generator.filter_due_tag(tags_mash_from_strings(%w(1 2 3))) }
context "with valid due tag" do
let(:generator) { GitHubChangelogGenerator::Generator.new(due_tag: "2") }
it { is_expected.to be_a Array }
it { is_expected.to match_array(tags_mash_from_strings(%w(3))) }
end
context "with invalid due tag" do
let(:generator) { GitHubChangelogGenerator::Generator.new(due_tag: "Invalid tag") }
it { is_expected.to be_a Array }
it { is_expected.to match_array(tags_mash_from_strings(%w(1 2 3))) }
end
end
context "with empty array" do
subject { generator.filter_due_tag(tags_mash_from_strings(%w())) }
context "with valid due tag" do
let(:generator) { GitHubChangelogGenerator::Generator.new(due_tag: "2") }
it { is_expected.to be_a Array }
it { is_expected.to match_array(tags_mash_from_strings(%w())) }
end
context "with invalid due tag" do
let(:generator) { GitHubChangelogGenerator::Generator.new(due_tag: "Invalid tag") }
it { is_expected.to be_a Array }
it { is_expected.to match_array(tags_mash_from_strings(%w())) }
end
end
end
describe "#get_time_of_tag" do
current_time = Time.now
before(:all) { @generator = GitHubChangelogGenerator::Generator.new }