# README
= GCG - GitHub Changelog Generator
image:https://img.shields.io/github/release/ldez/gcg.svg?style=flat["release", link="https://github.com/ldez/gcg/releases"] image:https://github.com/ldez/gcg/workflows/Main/badge.svg?branch=master["Build Status", link="https://github.com/ldez/gcg/actions"] image:https://goreportcard.com/badge/github.com/ldez/prm["Go Report Card", link="https://goreportcard.com/report/github.com/ldez/prm"] image:https://img.shields.io/badge/Sponsor%20me-%E2%9D%A4%EF%B8%8F-pink["Sponsor", link="https://github.com/sponsors/ldez"]
[source, yaml]
GCG is a GitHub Changelog Generator. The generator use only Pull Requests.
Usage: gcg [flags] []
Use "gcg --help" for help on any command.
Commands: version Display the version.
Flag's usage: gcg [--flag=flag_argument] [-f[flag_argument]] ... set flag_argument to flag(s) or: gcg [--flag[=true|false| ]] [-f[true|false| ]] ... set true/false to boolean flag(s)
Flags: -b, --base-branch Base branch name. PR branch destination. (default "master") --bug-label Bug Label. (default "bug") --config-file A configuration file. [optional] -c, --current-ref Current commit reference. Can be a tag, a branch, a SHA. --debug Debug mode. (default "false") --display-label Display labels (default "true") --dl-options Label display options. (default "true") --dl-options.prefix-exclude Excluded label prefixes. --dl-options.prefix-filter Included label prefixes. --dl-options.prefix-trim Trim label with the following prefixes. --dl-options.suffix-exclude Excluded label suffixes. --dl-options.suffix-filter Included label suffixes. --doc-label Documentation Label. (default "documentation") --enhancement-label Enhancement Label. (default "enhancement") --exclude-label Label to exclude. --file-name Name of the changelog file. (default "CHANGELOG.md") -f, --future-ref-name The future name of the current reference. --output-type Output destination type. (file|Stdout) (default "file") -o, --owner Repository owner. -p, --previous-ref Previous commit reference. Can be a tag, a branch, a SHA. -r, --repo-name Repository name. --th-after Threshold in seconds after the current ref date. (default "5") --th-before Threshold in seconds after the previous ref date. (default "1") --tmpl-file A template file. [optional] -t, --token GitHub Token. [optional] -h, --help Print Help (this message) and exit
== How to Install
|=== | OS | | Command
| Linux | image:https://img.shields.io/aur/version/gcg.svg?style=flat["ArchLinux (AUR)", link="https://aur.archlinux.org/packages/gcg"] a| [source]
yay -S gcg
| MacOS | image:https://img.shields.io/github/release/ldez/gcg.svg?label=Homebrew%20Taps&style=flat["Homebrew Taps", link="https://github.com/ldez/homebrew-tap"] a| [source,bash]
brew tap ldez/tap brew update brew install gcg
| Windows | image:https://img.shields.io/github/release/ldez/gcg.svg?label=Scoop%20Bucket&style=flat["Scoop Bucket", link="https://github.com/ldez/scoop-bucket"] a| [source,bash]
scoop bucket add ldez https://github.com/ldez/scoop-bucket.git scoop install gcg
| all | image:https://img.shields.io/github/release/ldez/gcg.svg?label=Binaries&style=flat["Binaries", link="https://github.com/ldez/gcg/releases"] a|
- To get the binary just download the latest release for your OS/Arch from https://github.com/ldez/gcg/releases[the releases page]
- Unzip the archive.
- Add
gcg
in yourPATH
.
| all | https://github.com/ldez/gcg[Sources] a| [source,bash]
go get -u github.com/ldez/gcg
|===
== Examples
[source,bash]
gcg -p"v1.2.0-rc1" -c"v1.3.0-rc1" -o"containous" -r"traefik" -t"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
=== Next major release (RC1 on master)
ex: for the (non-existing) next version 1.4.0-rc1
[source,mermaid]
gitGraph: commit id:"a" commit id:"b" tag:"v1.3.0-rc1" type:HIGHLIGHT commit id:"c" commit id:"d" commit id:"e" tag:"HEAD" type:HIGHLIGHT
[source,bash]
gcg -b"master" -p"v1.3.0-rc1" -c"master" -f"v1.4.0-rc1"
-o"containous" -r"traefik" -t"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
--exclude-label="area/infrastructure"
--enhancement-label="kind/enhancement" --doc-label="area/documentation" --bug-label="kind/bug/fix"
--debug
=== Next RC release (RC2 on a specific branch)
ex: for the (non-existing) version 1.3.0-rc2
[source,mermaid]
gitGraph: commit id:"a" commit id:"b" tag:"v1.3.0-rc1" type:HIGHLIGHT branch v1.3 checkout main commit id:"c" checkout v1.3 commit id:"d" commit id:"e"tag:"HEAD" type:HIGHLIGHT checkout main commit id:"f" commit id:"g"
[source, bash]
gcg -b"v1.3" -p"v1.3.0-rc1" -c"v1.3" -f"v1.3.0-rc2"
-o"containous" -r"traefik"
--exclude-label="area/infrastructure"
--enhancement-label="kind/enhancement" --doc-label="area/documentation" --bug-label="kind/bug/fix"
--debug
=== Previous major release (Pre RC1)
ex: for the (existing) version 1.3.0-rc1
[source,mermaid]
gitGraph: commit id:"a" commit id:"b" tag:"v1.2.0-rc1" type:HIGHLIGHT branch v1.2 commit id:"c" commit id:"d" tag:"v1.2.0" commit id:"e" commit id:"f" tag:"v1.2.1" checkout main commit id:"g" merge v1.2 commit id:"h" commit id:"i" tag:"v1.3.0-rc1" type:HIGHLIGHT branch v1.3 commit id:"j" commit id:"k" checkout main commit id:"l" commit id:"m"
[source, bash]
gcg -b"master" -p"v1.2.0-rc1" -c"v1.3.0-rc1"
-o"containous" -r"traefik"
--exclude-label="area/infrastructure"
--enhancement-label="kind/enhancement" --doc-label="area/documentation" --bug-label="kind/bug/fix"
--debug
=== Previous RC release (between RC1 and RC2)
ex: for the (existing) version 1.3.0-rc2
[source,mermaid]
gitGraph: commit id:"a" commit id:"b" tag:"v1.3.0-rc1" type:HIGHLIGHT branch v1.3 commit id:"c" commit id:"d" tag:"v1.3.0-rc2" type:HIGHLIGHT commit id:"e" commit id:"f" checkout main commit id:"g" commit id:"h"
[source, bash]
gcg -b"v1.3" -p"v1.3.0-rc1" -c"v1.3.0-rc2"
-o"containous" -r"traefik"
--exclude-label="area/infrastructure"
--enhancement-label="kind/enhancement" --doc-label="area/documentation" --bug-label="kind/bug/fix"
--debug
=== Filtered Labels