github-changelog-generator/README.md

132 lines
6.2 KiB
Markdown
Raw Permalink Normal View History

2014-11-07 10:00:01 +00:00
GitHub Changelog Generator
2014-11-06 13:39:10 +00:00
==================
2014-11-06 17:30:51 +00:00
[![Gem Version](https://badge.fury.io/rb/github_changelog_generator.svg)](http://badge.fury.io/rb/github_changelog_generator)
2014-12-03 09:40:54 +00:00
[![Build Status](https://travis-ci.org/skywinder/Github-Changelog-Generator.svg?branch=master)](https://travis-ci.org/skywinder/Github-Changelog-Generator)
2014-12-03 09:42:52 +00:00
2014-11-07 10:00:01 +00:00
Changelog generation has never been so easy.
2015-02-02 17:16:06 +00:00
**Fully automate changelog generation** - This script automatically generate change-log from your tags, issues and merged pull-requests from your project's **Github issue tracker**.
2014-11-06 13:39:10 +00:00
2014-11-06 17:14:35 +00:00
## Installation:
2014-11-19 20:16:41 +00:00
2014-11-07 10:00:01 +00:00
[sudo] gem install github_changelog_generator
2014-11-06 17:14:35 +00:00
2015-02-02 17:16:06 +00:00
## Output example:
- Look at **[CHANGELOG.md](https://github.com/skywinder/Github-Changelog-Generator/blob/master/CHANGELOG.md)** for this project
- [ActionSheetPicker-3.0/CHANGELOG.md](https://github.com/skywinder/ActionSheetPicker-3.0/blob/master/CHANGELOG.md) was generated by command:
github_changelog_generator -u skywinder -p ActionSheetPicker-3.0
- In general it looks like this:
2015-02-02 16:54:59 +00:00
> ## [1.3.10](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.10)
> #### 09/01/15
> - *Merged pull-request:* add header file to public [\#115](https://github.com/skywinder/ActionSheetPicker-3.0/pull/115)
> ([skywinder](https://github.com/skywinder))
>
> - *Merged pull-request:* Fix bad interaction with Git submodules.
> [\#112](https://github.com/skywinder/ActionSheetPicker-3.0/pull/112)
> ([JimDabell](https://github.com/JimDabell))
>
> - *Implemented enhancement:* Should have minimum/maximum date property exposed
> [\#97](https://github.com/skywinder/ActionSheetPicker-3.0/issues/97)
>
> ## [1.3.9](https://github.com/skywinder/ActionSheetPicker-3.0/tree/1.3.9)
> #### 11/12/14
> - *Closed issue:* Bad interaction with submodules [\#111](https://github.com/skywinder/ActionSheetPicker-3.0/issues/111)
>
> - *Closed issue:* No "cancel" button [\#122](https://github.com/skywinder/ActionSheetPicker-3.0/issues/122)
2015-02-02 17:19:11 +00:00
###Features and advantages of this project as compared to other:
2015-02-02 17:16:06 +00:00
- Custom date format supported
2015-02-02 15:09:30 +00:00
- Automatically split issues by type:
- **Issues** (closed issues w/o any labels)
- **Merged pull-requests** (all merged pull-requests)
- **Bug-fixes** (by label `bug` in issue)
- **Enhancements** (by label `enhancement` in issue)
2015-02-02 17:16:06 +00:00
- Excluding "questions" from changelog (issues marked as `question` labels)
2015-02-02 15:09:30 +00:00
- 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
- Ability to exclude some issues from changelog (by labels)
2015-02-02 16:54:59 +00:00
## Usage:
2014-11-11 08:57:53 +00:00
**It's really simple**:
2014-11-06 13:47:56 +00:00
2015-01-21 18:14:31 +00:00
- If your **git remote** `origin` refer to your GitHub repo, then just go to your project folder and run:
2014-11-06 17:14:35 +00:00
2014-11-11 08:57:53 +00:00
github_changelog_generator
2014-11-06 17:14:35 +00:00
2014-11-24 19:20:46 +00:00
- or from anywhere:
2015-01-21 18:14:31 +00:00
github_changelog_generator -u github_username -p github_project
2014-11-11 08:57:53 +00:00
2015-01-21 18:17:57 +00:00
As output you will get `CHANGELOG.md` file with pretty *Markdown-formatted* changelog.
2014-11-06 17:25:58 +00:00
2014-11-24 19:20:46 +00:00
### Params:
2014-11-11 08:57:53 +00:00
Type `github_changelog_generator --help` for detailed usage.
Usage: changelog_generator [options]
2014-11-19 12:33:38 +00:00
-u, --user [USER] Username of the owner of target GitHub repo
-p, --project [PROJECT] Name of project on GitHub
-t, --token [TOKEN] To make more than 50 requests this script required your OAuth token for GitHub. You can generate here: https://github.com/settings/tokens/new
-h, --help Displays Help
--[no-]verbose Run verbosely. Default is true
--[no-]issues Include closed issues to changelog. Default is true
--[no-]issues-without-labels Include closed issues without any labels to changelog. Default is true
--[no-]pull-requests Include pull-requests to changelog. Default is true
-l, --last-changes Generate log between last 2 tags only
--[no-]author Add author of pull-request in the end. Default is true
-f, --date-format [FORMAT] Date format. Default is %d/%m/%y
-o, --output [NAME] Output file. Default is CHANGELOG.md
--labels x,y,z List of labels. Issues with that labels will be included to changelog. Default is 'bug,enhancement'
-v, --version Print version number
2014-11-07 16:31:36 +00:00
2014-11-07 10:00:01 +00:00
2014-11-24 19:20:46 +00:00
### GitHub token
2014-11-06 17:14:35 +00:00
Since GitHub allow to make only 50 requests without authentication it's recommended to run this script with token
**You can easily [generate it here](https://github.com/settings/applications)**.
And:
2014-11-24 19:20:46 +00:00
- Run with key `-t [your-16-digit-token]`
2014-11-13 07:22:32 +00:00
- Or set environment variable `CHANGELOG_GITHUB_TOKEN` and specify there your token.
2015-01-21 18:17:57 +00:00
i.e. add to your `~/.bash_profile` or `~/.zshrc` or any other place to load ENV variables string :
export CHANGELOG_GITHUB_TOKEN="your-40-digit-github-token"
2014-11-06 13:47:56 +00:00
2014-11-06 17:14:35 +00:00
So, if you got error like this:
2014-11-11 08:57:53 +00:00
>! /Library/Ruby/Gems/2.0.0/gems/github_api-0.12.2/lib/github_api/response/raise_error.rb:14:in `on_complete'
2014-11-06 14:35:53 +00:00
2014-11-11 08:57:53 +00:00
It's time to create this token or wait for 1 hour before GitHub reset the counter for your IP.
2014-11-06 14:35:53 +00:00
2014-11-24 19:20:46 +00:00
## Projects using this library
[Wikipage with list of projects](https://github.com/skywinder/Github-Changelog-Generator/wiki/Projects-using-Github-Changelog-Generator)
2015-02-02 17:16:06 +00:00
*If you are using `github_changelog_generator` for generation changelog in your project or know of project that uses it, please add it to [this] (https://github.com/skywinder/Github-Changelog-Generator/wiki/Projects-using-Github-Changelog-Generator) list.*
2014-11-24 19:20:46 +00:00
2014-11-11 08:57:53 +00:00
## Am I missed some essential feature?
2015-02-02 17:16:06 +00:00
**Nothing is impossible!**
Open an [issue](https://github.com/skywinder/Github-Changelog-Generator/issues/new) and let's make generator better together!
2014-11-06 14:35:53 +00:00
2014-11-11 09:04:17 +00:00
*Bug reports, feature requests, patches, well-wishes are always welcome!*
2014-11-06 17:33:44 +00:00
2014-11-11 09:00:34 +00:00
## Contributing
2014-11-06 17:33:44 +00:00
1. Create an issue to discuss about your idea
2014-11-06 17:48:59 +00:00
2. [Fork it] (https://github.com/skywinder/Github-Changelog-Generator/fork)
2014-11-06 17:33:44 +00:00
3. Create your feature branch (`git checkout -b my-new-feature`)
4. Commit your changes (`git commit -am 'Add some feature'`)
5. Push to the branch (`git push origin my-new-feature`)
6. Create a new Pull Request
2014-11-11 08:57:53 +00:00
## License
2014-11-06 17:33:44 +00:00
2015-02-06 13:36:03 +00:00
Github Changelog Generator is released under the [MIT License](http://www.opensource.org/licenses/MIT).