____ ____ ____ _ ___ _ _ ____ _ _ ____ _ _
| __ | | __ | __ | | |\/| | | | | __ | | |
|__] |__| |__] | | | | |__| _| | |___ |___ |
Gitmoji is an emoji guide for GitHub commit messages. Aims to be a standardization cheatsheet - guide for using emojis on GitHub's commit messages. is a nice way to standardize commit messages with emojis.
There is already a nice gitmoji-cli command line interface available. Nevertheless, I was searching a nice project to get a bit more into golang so this cli was born. There are some feature differences between both projects.
Per default the format is conventional-commits with emoji
<type>[optional scope]: :smile: <description>
:warning: Currently the package is in state alpha
please be aware that some functionality may change and some bugs may happen.
brew tap AndreasAugustin/go-gitmoji-cli https://github.com/AndreasAugustin/go-gitmoji-cli
brew install AndreasAugustin/go-gitmoji-cli/go-gitmoji-cli
Remark :warning:
When you receive an error like This repository is configured for Git LFS but 'git-lfs' was not found on your path
you most likely have git-lfs
installed globally. Do the following
git lfs uninstall
# <cd to the repo, which uses lfs>
git lfs install --local
The package is located here
pamac update -a
pamac install go-gitmoji-cli-bin
The image is available within 2 docker registries available. Just pull the image to have a local test setup available. To use it, mount the current dir into the working dir.
# available <tag> are the git tags
# docker hub
# pull the image
docker pull andyaugustin/go-gitmoji-cli:<tag>
# run the container -> will open a zsh session
# note: the local volume mount is missing in the sample command
docker run -it andyaugustin/go-gitmoji-cli:<tag>
# if you prefer ghcr instead of docker hub
# docker pull ghcr.io/andreasaugustin/go-gitmoji-cli:<tag>
# docker run -it ghcr.io/andreasaugustin/go-gitmoji-cli:<tag>
go install github.com/AndreasAugustin/go-gitmoji-cli@latest
Download the related release here and unpack the related binary into your path
It is possible to configure the cli either with a .go-gitmoji-cli.json
file within the repo directory
or with command line flags.
Environment variables are supported (case insensitive). The key is the same like the parameter with a prefix GO_GITMOJICLI.
All parameters are able to be modified with flags.
parameter | description | default |
---|---|---|
auto_add | perform automatically a git add . |
false |
auto_sign | automatically sign commits (can also be configured with git git config -g commit.gpgsign=true |
false |
auto_signature | automatically add signature to commits | true |
emoji_format | format of emojis code/emoji |
code |
scope_prompt | Prompt for adding the commit scope | false |
body_prompt | Prompt for adding the commit message body | false |
capitalize_title | If set to true the commit title description will be capitalized | false |
gitmojis_url | The URL of the gitmojis database | https://gitmoji.dev/api/gitmojis |
use_default_git_messages | Use the default git messages (merge, squash, ammend,..) | true |
debug | enable debug mode | false |
The configuration values can be changed with
go-gitmoji-cli config [-g]
This will create a file within the local directory or within the OS related config directory (when -g
flag is enabled).
Reading will follow the following order:
The cli is firing at first usage or with the update gitmojis
command a http query to the
configured gitmoji api url to receive a list of available gitmojis.
The cli is using net/http package which is per default respecting the standard system proxy settings done
with environment variables.
# show available commands
go-gitmoji-cli --help
# show the version
go-gitmoji-cli --version
# list the available gitmojis
go-gitmoji-cli list gitmojis
# list the available commit types
go-gitmoji-cli list commit-types
There are 2 ways making commits with the tool
go-gitmoji-cli hooks --help
. With that command it is possible to install a commit hook. To use the hook, just do a git commit <options>
.
This will trigger the cli.go-gitmoji-cli commit --help
. It is not possible to use this command when you have installed a hook.# doing a commit with dry-run
go-gitmoji-cli commit --dry-run
Some arguments and flags you know from git will be reused.
The first message will be parsed and the single parts will be reused.
E.g. git commit -S -m "feat(api)!: :smile: also just parts of the message will be reused" -m "this is a message body"
This is also true when the go-gitmoji-cli commit -S -m "..." -m "..."
is used.
There is a flag --debug
enabling verbose logging
The development environment targets are located in the Makefile
make help
A push/merge to main
branch is triggering the deployment. The release action can be found here
Special thanks to gitmoji and gitmoji-cli
Thanks goes to these wonderful people (emoji key):
andy Augustin π π» π π‘οΈ π€ π‘ π |
Benedikt Volkmer π |
This project follows the all-contributors specification. Contributions of any kind welcome!