go-gitmoji-cli
:octocat: A conventional gitmoji commit interactive command line tool for using emojis on conventional commits. :rocket:
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.3%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
:octocat: A conventional gitmoji commit interactive command line tool for using emojis on conventional commits. :rocket:
Basic Info
- Host: GitHub
- Owner: AndreasAugustin
- License: mit
- Language: Go
- Default Branch: main
- Homepage: https://gitmoji.dev/
- Size: 374 KB
Statistics
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 7
- Releases: 20
Topics
Metadata Files
README.md
go-gitmoji-cli
<!-- ALL-CONTRIBUTORS-BADGE:END -->
```bash
| __ | | __ | __ | | |\/| | | | | __ | | | |] || |] | | | | || | | |__ |___ | ```

Abstract
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>
Installation
:warning: Currently the package is in state alpha please be aware that some functionality may change and some bugs may happen.
brew
bash
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
```bash git lfs uninstall
git lfs install --local ```
Aur
The package is located here
bash
pamac update -a
pamac install go-gitmoji-cli-bin
Docker
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.
```bash
available are the git tags
docker hub
pull the image
docker pull andyaugustin/go-gitmoji-cli:
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:
if you prefer ghcr instead of docker hub
docker pull ghcr.io/andreasaugustin/go-gitmoji-cli:
docker run -it ghcr.io/andreasaugustin/go-gitmoji-cli:
```
Go
bash
go install github.com/AndreasAugustin/go-gitmoji-cli@latest
Manual
Download the related release here and unpack the related binary into your path
Configuration
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 GOGITMOJICLI_.
All parameters are able to be modified with flags.
| parameter | description | default |
|--------------------------|----------------------------------------------------------------------------------------------|------------------------------------|
| autoadd | perform automatically a git add . | false |
| autosign | automatically sign commits (can also be configured with git git config -g commit.gpgsign=true | false |
| autosignature | automatically add signature to commits | true |
| emojiformat | format of emojis code/emoji | code |
| scopeprompt | Prompt for adding the commit scope | false |
| bodyprompt | Prompt for adding the commit message body | false |
| capitalizetitle | If set to true the commit title description will be capitalized | false |
| gitmojisurl | The URL of the gitmojis database | https://gitmoji.dev/api/gitmojis |
| usedefaultgit_messages | Use the default git messages (merge, squash, ammend,..) | true |
| debug | enable debug mode | false |
The configuration values can be changed with
bash
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:
- default values
- global config if exists
- local config if exists
- environment variables
- command flags
Usage
Proxy
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.
- HTTP_PROXY
- HTTPS_PROXY
- NO_PROXY
basic commands
```bash
show available commands
go-gitmoji-cli --help ```

```bash
show the version
go-gitmoji-cli --version ```

```bash
list the available gitmojis
go-gitmoji-cli list gitmojis ```

```bash
list the available commit types
go-gitmoji-cli list commit-types ```

Commit
There are 2 ways making commits with the tool
- hooks
go-gitmoji-cli hooks --help. With that command it is possible to install a commit hook. To use the hook, just do agit commit <options>. This will trigger the cli. - commit
go-gitmoji-cli commit --help. It is not possible to use this command when you have installed a hook.
```bash
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.
Debugging
There is a flag --debug enabling verbose logging
DEV
The development environment targets are located in the Makefile
bash
make help
Deployments
A push/merge to main branch is triggering the deployment. The release action can be found here
Used libraries and tools
Special thanks to gitmoji and gitmoji-cli
Contributors ✨
Thanks goes to these wonderful people (emoji key):
andy Augustin 📖 💻 👀 🛡️ 🤔 💡 🖋 |
Benedikt Volkmer 🐛 |
This project follows the all-contributors specification. Contributions of any kind welcome!
Owner
- Name: andy Augustin
- Login: AndreasAugustin
- Kind: user
- Location: Germany
- Company: @andreas-augustin-dev
- Website: https://Andreas-Augustin.dev
- Repositories: 59
- Profile: https://github.com/AndreasAugustin
cloud evangelist
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: go-gitmoji-cli
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Andreas
family-names: Augustin
orcid: 'https://orcid.org/0009-0003-8658-2370'
repository-code: 'https://github.com/AndreasAugustin/go-gitmoji-cli'
url: 'https://andreasaugustin.github.io/go-gitmoji-cli/'
abstract: >-
Cli to use gitmoji commit messages in conventional commits format
keywords:
- git
- gitmoji
- conventional-commits
license: MIT
version: v0.8.0
GitHub Events
Total
- Delete event: 16
- Issue comment event: 14
- Push event: 2
- Pull request review event: 2
- Pull request event: 35
- Fork event: 1
- Create event: 20
Last Year
- Delete event: 16
- Issue comment event: 14
- Push event: 2
- Pull request review event: 2
- Pull request event: 35
- Fork event: 1
- Create event: 20
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| dependabot[bot] | 4****] | 79 |
| Andy Augustin | d****v@a****g | 74 |
| github-actions[bot] | 4****] | 33 |
| andy Augustin | A****n | 32 |
| allcontributors[bot] | 4****] | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 26
- Total pull requests: 167
- Average time to close issues: 1 day
- Average time to close pull requests: 4 days
- Total issue authors: 2
- Total pull request authors: 4
- Average comments per issue: 0.38
- Average comments per pull request: 0.25
- Merged pull requests: 133
- Bot issues: 0
- Bot pull requests: 142
Past Year
- Issues: 0
- Pull requests: 28
- Average time to close issues: N/A
- Average time to close pull requests: 10 days
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.54
- Merged pull requests: 7
- Bot issues: 0
- Bot pull requests: 28
Top Authors
Issue Authors
- AndreasAugustin (23)
- dependabot[bot] (1)
- bvolkmer (1)
Pull Request Authors
- dependabot[bot] (176)
- github-actions[bot] (36)
- AndreasAugustin (26)
- allcontributors[bot] (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
- Total downloads: unknown
- Total docker downloads: 29
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 38
proxy.golang.org: github.com/andreasaugustin/go-gitmoji-cli
- Documentation: https://pkg.go.dev/github.com/andreasaugustin/go-gitmoji-cli#section-documentation
- License: mit
-
Latest release: v0.6.1-alpha
published over 1 year ago
Rankings
proxy.golang.org: github.com/AndreasAugustin/go-gitmoji-cli
- Homepage: https://github.com/AndreasAugustin/go-gitmoji-cli
- Documentation: https://pkg.go.dev/github.com/AndreasAugustin/go-gitmoji-cli#section-documentation
- License: MIT
-
Latest release: v0.6.1-alpha
published over 1 year ago
Rankings
Dependencies
- actions/checkout v3 composite
- actions/setup-go v4 composite
- actions/checkout v2 composite
- alpine 3.18.2 build
- node 20.5.0-alpine build
- github.com/atotto/clipboard v0.1.4
- github.com/aymanbagabas/go-osc52/v2 v2.0.1
- github.com/briandowns/spinner v1.23.0
- github.com/charmbracelet/bubbles v0.16.1
- github.com/charmbracelet/bubbletea v0.24.2
- github.com/charmbracelet/lipgloss v0.7.1
- github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81
- github.com/davecgh/go-spew v1.1.1
- github.com/fatih/color v1.13.0
- github.com/fsnotify/fsnotify v1.6.0
- github.com/gdamore/encoding v1.0.0
- github.com/gdamore/tcell/v2 v2.5.3
- github.com/hashicorp/hcl v1.0.0
- github.com/inconshreveable/mousetrap v1.1.0
- github.com/ktr0731/go-ansisgr v0.1.0
- github.com/ktr0731/go-fuzzyfinder v0.7.0
- github.com/lucasb-eyer/go-colorful v1.2.0
- github.com/magiconair/properties v1.8.7
- github.com/mattn/go-colorable v0.1.12
- github.com/mattn/go-isatty v0.0.18
- github.com/mattn/go-localereader v0.0.1
- github.com/mattn/go-runewidth v0.0.14
- github.com/mitchellh/mapstructure v1.5.0
- github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b
- github.com/muesli/cancelreader v0.2.2
- github.com/muesli/reflow v0.3.0
- github.com/muesli/termenv v0.15.1
- github.com/nsf/termbox-go v1.1.1
- github.com/pelletier/go-toml/v2 v2.0.8
- github.com/pkg/errors v0.9.1
- github.com/pmezard/go-difflib v1.0.0
- github.com/rivo/uniseg v0.4.2
- github.com/sahilm/fuzzy v0.1.0
- github.com/sirupsen/logrus v1.9.3
- github.com/spf13/afero v1.9.5
- github.com/spf13/cast v1.5.1
- github.com/spf13/cobra v1.7.0
- github.com/spf13/jwalterweatherman v1.1.0
- github.com/spf13/pflag v1.0.5
- github.com/spf13/viper v1.16.0
- github.com/stretchr/testify v1.8.4
- github.com/subosito/gotenv v1.4.2
- golang.org/x/sync v0.1.0
- golang.org/x/sys v0.8.0
- golang.org/x/term v0.6.0
- golang.org/x/text v0.9.0
- gopkg.in/ini.v1 v1.67.0
- gopkg.in/yaml.v3 v3.0.1
- 523 dependencies
- actions/checkout v3 composite
- actions/setup-go v4 composite
- anchore/sbom-action/download-syft v0.14.3 composite
- docker/login-action v2 composite
- goreleaser/goreleaser-action v4 composite
- google-github-actions/release-please-action v3 composite
- actions/checkout v3 composite
- docker/login-action v2 composite