git-chglog
A Tool to generate CHANGELOG.md by commit messages.
git-chglog --config .chglog/config.yml --output CHANGELOG.md 1.2.0..
style: gitlab
template: CHANGELOG.tpl.md
info:
title: CHANGELOG
repository_url: https://github.com/xandeer/hs.git
options:
commits:
filters:
Type:
- Feat
- Fix
- Refactor
commit_groups:
group_by: Type
sort_by: Title
title_maps:
Feat: Features
Fix: Bug Fixes
Refactor: Code Refactoring
header:
pattern: "^(\\w*)\\:\\s(.*)$"
pattern_maps:
- Type
- Subject
notes:
keywords:
- BREAKING CHANGE
{{ if .Versions -}}
<a name="unreleased"></a>
## [Unreleased]
{{ if .Unreleased.CommitGroups -}}
{{ range .Unreleased.CommitGroups -}}
### {{ .Title }}
{{ range .Commits -}}
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }} ([{{ .Hash.Short }}]({{ $.Info.RepositoryURL }}/commit/{{.Hash.Long }}))
{{ end -}}
{{ end }}
{{ end -}}
{{ end -}}
{{ range .Versions }}
<a name="{{ .Tag.Name }}"></a>
## {{ if .Tag.Previous }}[{{ .Tag.Name }}]{{ else }}{{ .Tag.Name }}{{ end }} - {{ datetime "2006-01-02" .Tag.Date }}
{{ range .CommitGroups -}}
### {{ .Title }}
{{ range .Commits -}}
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }} ([{{ .Hash.Short }}]({{ $.Info.RepositoryURL }}/commit/{{.Hash.Long }}))
{{ end }}
{{ end -}}
{{ end -}}
{{- if .Versions }}
[Unreleased]: {{ .Info.RepositoryURL }}
{{ range .Versions -}}
{{ if .Tag.Previous -}}
[{{ .Tag.Name }}]: {{ $.Info.RepositoryURL }}/tags/{{ .Tag.Name }}
{{ end -}}
{{ end -}}
{{ end -}}