diff --git a/Makefile b/Makefile index a303c74..006934c 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,9 @@ format: go fmt $(go list ./... | grep -v /vendor/) go vet $(go list ./... | grep -v /vendor/) +generateChangelog: + ./tools/git-chglog_linux_amd64 --config tools/chglog/config.yml 0.0.0.. > CHANGELOG.md + build/snapshot: ./tools/goreleaser_linux_amd64 --snapshot --rm-dist --skip-publish diff --git a/tools/chglog/CHANGELOG.tpl.md b/tools/chglog/CHANGELOG.tpl.md new file mode 100755 index 0000000..fd7c7d3 --- /dev/null +++ b/tools/chglog/CHANGELOG.tpl.md @@ -0,0 +1,60 @@ +# CHANGELOG + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog], and this project adheres to [Semantic Versioning]. + +{{ if .Versions -}} +## [Unreleased] +{{- if .Unreleased.CommitGroups }} +{{ template "commits" .Unreleased.CommitGroups }} +{{- end -}} + +{{- if .Unreleased.NoteGroups -}} +{{ template "notes" .Unreleased.NoteGroups }} +{{- end -}} +{{- end -}} + +{{ range .Versions -}} +## {{ if .Tag.Previous }}[{{ .Tag.Name }}]{{ else }}{{ .Tag.Name }}{{ end }} - {{ datetime "2006-01-02" .Tag.Date }} +{{ template "commits" .CommitGroups }} +{{- if .NoteGroups -}} +{{ template "notes" .NoteGroups }} +{{- end -}} +{{ end }} +--- + +*This changelog is automatically generated by [git-chglog]* + +[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/ +[Semantic Versioning]: https://semver.org/spec/v2.0.0.html +[git-chglog]: https://github.com/git-chglog/git-chglog + +{{- if .Versions }} +[Unreleased]: {{ .Info.RepositoryURL }}/compare/{{ $latest := index .Versions 0 }}{{ $latest.Tag.Name }}...develop +{{ range .Versions -}} +{{ if .Tag.Previous -}} +[{{ .Tag.Name }}]: {{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }} +{{ end -}} +{{ end -}} +{{ end -}} + +{{- define "notes" }} +{{- range . -}} +### {{ .Title }} +{{ range .Notes -}} +- {{ .Body }} +{{ end }} +{{ end }} +{{ end -}} + +{{- define "commits" }} +{{- range . -}} +{{ if or (eq .RawTitle "feat") (eq .RawTitle "fix") }} +### {{ .Title }} +{{ range .Commits -}} +- ({{ .Hash.Short }}) {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Header }} +{{ end }} +{{ end -}} +{{ end -}} +{{ end -}} diff --git a/tools/chglog/config.yml b/tools/chglog/config.yml new file mode 100755 index 0000000..9763596 --- /dev/null +++ b/tools/chglog/config.yml @@ -0,0 +1,23 @@ +style: gitlab +template: CHANGELOG.tpl.md +info: + title: CHANGELOG + repository_url: https://gitlab.com/hectorjsmith/fail2ban-prometheus-exporter +options: + commit_groups: + title_maps: + feat: Added + fix: Fixed + revert: Reverted + header: + pattern: "^(\\w*)\\:\\s(.*)$" + pattern_maps: + - Type + - Subject + notes: + keywords: + - BREAKING CHANGE + - Changed + - Deprecated + - Removed + - Security diff --git a/tools/git-chglog_linux_amd64 b/tools/git-chglog_linux_amd64 new file mode 100755 index 0000000..6b8eb11 Binary files /dev/null and b/tools/git-chglog_linux_amd64 differ