{"id":15691632,"url":"https://github.com/andreasaugustin/go-gitmoji-cli","last_synced_at":"2025-06-19T13:33:46.721Z","repository":{"id":184732434,"uuid":"669588923","full_name":"AndreasAugustin/go-gitmoji-cli","owner":"AndreasAugustin","description":":octocat: A conventional gitmoji commit interactive command line tool for using emojis on conventional commits. :rocket:","archived":false,"fork":false,"pushed_at":"2025-01-13T00:27:50.000Z","size":383,"stargazers_count":8,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T22:47:34.290Z","etag":null,"topics":["cli","conventional-commit","gitmoji","gitmoji-cli","golang"],"latest_commit_sha":null,"homepage":"https://gitmoji.dev/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AndreasAugustin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"issuehunt":"andreasaugustin","custom":["https://paypal.me/AugustinAndreas"],"github":["AndreasAugustin"],"ko_fi":"andreasaugustin"}},"created_at":"2023-07-22T19:11:41.000Z","updated_at":"2024-10-21T08:14:42.000Z","dependencies_parsed_at":"2023-10-10T14:20:09.932Z","dependency_job_id":"3a884d01-4af9-4035-a8ce-eb5992b4fe8c","html_url":"https://github.com/AndreasAugustin/go-gitmoji-cli","commit_stats":null,"previous_names":["andreasaugustin/go-gitmoji-cli"],"tags_count":17,"template":false,"template_full_name":"AndreasAugustin/template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasAugustin%2Fgo-gitmoji-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasAugustin%2Fgo-gitmoji-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasAugustin%2Fgo-gitmoji-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasAugustin%2Fgo-gitmoji-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndreasAugustin","download_url":"https://codeload.github.com/AndreasAugustin/go-gitmoji-cli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252798767,"owners_count":21805879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","conventional-commit","gitmoji","gitmoji-cli","golang"],"created_at":"2024-10-03T18:22:35.765Z","updated_at":"2025-05-07T01:45:31.063Z","avatar_url":"https://github.com/AndreasAugustin.png","language":"Go","readme":"# go-gitmoji-cli\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n[![CodeQL](https://github.com/AndreasAugustin/go-gitmoji-cli/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/AndreasAugustin/go-gitmoji-cli/actions/workflows/github-code-scanning/codeql)\n\n[![ci_go](https://github.com/AndreasAugustin/go-gitmoji-cli/actions/workflows/ci_go.yml/badge.svg)](https://github.com/AndreasAugustin/go-gitmoji-cli/actions/workflows/ci_go.yml)\n\n[![Lint](https://github.com/AndreasAugustin/go-gitmoji-cli/actions/workflows/lint.yml/badge.svg)](https://github.com/AndreasAugustin/go-gitmoji-cli/actions/workflows/lint.yml)\n\n[![goreleaser](https://github.com/AndreasAugustin/go-gitmoji-cli/actions/workflows/release_go.yml/badge.svg)](https://github.com/AndreasAugustin/go-gitmoji-cli/actions/workflows/release_go.yml)\n\n```bash\n  ____ ____    ____ _ ___ _  _ ____  _ _    ____ _    _\n  | __ |  | __ | __ |  |  |\\/| |  |  | | __ |    |    |\n  |__] |__|    |__] |  |  |  | |__| _| |    |___ |___ |\n```\n\n![commit](docs/assets/commit.gif)\n\n## Abstract\n\n[Gitmoji][gitmoji] is an emoji guide for GitHub commit messages. Aims to be a standardization cheatsheet - guide for using emojis on GitHub's commit messages.\n is a nice way to standardize commit messages with emojis.\n\nThere is already a nice [gitmoji-cli][gitmoji-cli] command line interface available.\nNevertheless, I was searching a nice project to get a bit more into golang so this cli was born.\nThere are some feature differences between both projects.\n\nPer default the format is [conventional-commits][conventional-commits] with emoji\n`\u003ctype\u003e[optional scope]: :smile: \u003cdescription\u003e`\n\n## Installation\n\n:warning: Currently the package is in state `alpha` please be aware that some functionality may change and some bugs may happen.\n\n### brew\n\n```bash\nbrew tap AndreasAugustin/go-gitmoji-cli https://github.com/AndreasAugustin/go-gitmoji-cli\nbrew install AndreasAugustin/go-gitmoji-cli/go-gitmoji-cli\n```\n\n**Remark** :warning:\n\nWhen you receive an error like *This repository is configured for Git LFS but 'git-lfs' was not found on your path*\nyou most likely have `git-lfs` installed globally. Do the following\n\n```bash\ngit lfs uninstall\n# \u003ccd to the repo, which uses lfs\u003e\ngit lfs install --local\n```\n\n[github issue][brew-tap-issue-git-lfs]\n\n### Aur\n\nThe package is located [here][go-gitmoji-cli-aur]\n\n```bash\npamac update -a\npamac install go-gitmoji-cli-bin\n```\n\n### Docker\n\nThe image is available within 2 docker registries available. Just pull the image to have a local test setup available.\nTo use it, mount the current dir into the working dir.\n\n- [dockerhub][go-gitmoji-cli-docker-hub]\n- [ghcr][go-gitmoji-cli-docker-ghcr]\n\n```bash\n# available \u003ctag\u003e are the git tags\n\n# docker hub\n# pull the image\ndocker pull andyaugustin/go-gitmoji-cli:\u003ctag\u003e\n# run the container -\u003e will open a zsh session\n# note: the local volume mount is missing in the sample command\ndocker run -it andyaugustin/go-gitmoji-cli:\u003ctag\u003e\n\n# if you prefer ghcr instead of docker hub\n# docker pull ghcr.io/andreasaugustin/go-gitmoji-cli:\u003ctag\u003e\n# docker run -it ghcr.io/andreasaugustin/go-gitmoji-cli:\u003ctag\u003e\n```\n\n### Go\n\n```bash\n go install github.com/AndreasAugustin/go-gitmoji-cli@latest\n```\n\n### Manual\n\nDownload the related release [here][go-gitmoji-cli-releases] and unpack the related binary into your path\n\n## Configuration\n\nIt is possible to configure the cli either with a `.go-gitmoji-cli.json` file within the repo directory\nor with command line flags.\nEnvironment variables are supported (case insensitive). The key is the same like the parameter with a prefix **GO_GITMOJI_CLI_**.\nAll parameters are able to be modified with flags.\n\n| **parameter**            | **description**                                                                              | **default**                        |\n|--------------------------|----------------------------------------------------------------------------------------------|------------------------------------|\n| auto_add                 | perform automatically a `git add .`                                                          | `false`                            |\n| auto_sign                | automatically sign commits (can also be configured with git `git config -g commit.gpgsign=true` | `false`                            |\n| auto_signature | automatically add signature to commits                                                       | `true`                              |\n| emoji_format             | format of emojis `code/emoji`                                                                | `code`                             |\n| scope_prompt             | Prompt for adding the commit scope                                                           | `false`                            |\n| body_prompt              | Prompt for adding the commit message body                                                    | `false`                            |\n| capitalize_title         | If set to true the commit title description will be capitalized                              | `false`                            |\n| gitmojis_url             | The URL of the gitmojis database                                                             | `https://gitmoji.dev/api/gitmojis` |\n| use_default_git_messages | Use the default git messages (merge, squash, ammend,..)                                      | `true`                             |\n| debug                    | enable debug mode                                                                            | `false`                            |\n\nThe configuration values can be changed with\n\n```bash\ngo-gitmoji-cli config [-g]\n```\n\n![config](docs/assets/config.gif)\n\nThis will create a file within the local directory or within the OS related config directory (when `-g` flag is enabled).\nReading will follow the following order:\n\n- default values\n- global config if exists\n- local config if exists\n- environment variables\n- command flags\n\n## Usage\n\n### Proxy\n\nThe cli is firing at first usage or with the `update gitmojis` command a http query to the\nconfigured gitmoji api url to receive a list of available gitmojis.\nThe cli is using [net/http][net/http] package which is per default respecting the standard system proxy settings done\nwith environment variables.\n\n- HTTP_PROXY\n- HTTPS_PROXY\n- NO_PROXY\n\n### basic commands\n\n```bash\n# show available commands\ngo-gitmoji-cli --help\n```\n\n![help](docs/assets/help.gif)\n\n```bash\n# show the version\ngo-gitmoji-cli --version\n```\n\n![version](docs/assets/version.gif)\n\n```bash\n# list the available gitmojis\ngo-gitmoji-cli list gitmojis\n```\n\n![list](docs/assets/list_gitmojis.gif)\n\n```bash\n# list the available commit types\ngo-gitmoji-cli list commit-types\n```\n\n![list](docs/assets/list_commit_types.gif)\n\n### Commit\n\nThere are 2 ways making commits with the tool\n\n- hooks `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 \u003coptions\u003e`.\nThis will trigger the cli.\n- commit `go-gitmoji-cli commit --help`. It is not possible to use this command when you have installed a hook.\n\n```bash\n# doing a commit with dry-run\ngo-gitmoji-cli commit --dry-run\n```\n\n![commit-dry-run](docs/assets/commit.gif)\n\nSome arguments and flags you know from git will be reused.\nThe first message will be parsed and the single parts will be reused.\nE.g. `git commit -S -m \"feat(api)!: :smile: also just parts of the message will be reused\" -m \"this is a message body\"`\nThis is also true when the `go-gitmoji-cli commit -S -m \"...\" -m \"...\"` is used.\n\n## Debugging\n\nThere is a flag `--debug` enabling **verbose** logging\n\n## DEV\n\nThe development environment targets are located in the [Makefile](Makefile)\n\n```bash\nmake help\n```\n\n## Deployments\n\nA push/merge to `main` branch is triggering the deployment. The release action can be found [here][go-gitmoji-cli-actions-release]\n\n## Used libraries and tools\n\nSpecial thanks to [gitmoji][gitmoji] and [gitmoji-cli][gitmoji-cli]\n\n- [cobra][cobra]\n- [viper][viper]\n- [logrus][logrus]\n- [bubbletea][bubbletea]\n- [bubbles][bubbles]\n- [lipgloss][lipgloss]\n- [go-figure][go-figure]\n- [vhs][vhs]\n- [goreleaser][goreleaser]\n\n[gitmoji]: https://gitmoji.dev/\n[gitmoji-cli]: https://github.com/carloscuesta/gitmoji-cli\n[conventional-commits]: https://www.conventionalcommits.org/en/v1.0.0/\n[cobra]: https://github.com/spf13/cobra\n[viper]: https://github.com/spf13/viper\n[logrus]: https://github.com/sirupsen/logrus\n[bubbletea]: https://github.com/charmbracelet/bubbletea\n[bubbles]: https://github.com/charmbracelet/bubbles\n[lipgloss]: https://github.com/charmbracelet/lipgloss\n[go-figure]: https://github.com/common-nighthawk/go-figure\n[vhs]: https://github.com/charmbracelet/vhs\n[goreleaser]: https://goreleaser.com/\n[go-gitmoji-cli-releases]: https://github.com/AndreasAugustin/go-gitmoji-cli/releases\n[go-gitmoji-cli-docker-hub]: https://hub.docker.com/repository/docker/andyaugustin/go-gitmoji-cli/general\n[go-gitmoji-cli-docker-ghcr]: https://github.com/AndreasAugustin/go-gitmoji-cli/pkgs/container/go-gitmoji-cli\n[go-gitmoji-cli-aur]: https://aur.archlinux.org/packages/go-gitmoji-cli-bin\n[net/http]: https://pkg.go.dev/net/http\n[go-gitmoji-cli-actions-release]: https://github.com/AndreasAugustin/go-gitmoji-cli/actions/workflows/release.yml\n[brew-tap-issue-git-lfs]: https://github.com/Homebrew/brew/issues/4988\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/AndreasAugustin\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/8027933?v=4?s=100\" width=\"100px;\" alt=\"andy Augustin\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eandy Augustin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/AndreasAugustin/go-gitmoji-cli/commits?author=AndreasAugustin\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/AndreasAugustin/go-gitmoji-cli/commits?author=AndreasAugustin\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/AndreasAugustin/go-gitmoji-cli/pulls?q=is%3Apr+reviewed-by%3AAndreasAugustin\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#security-AndreasAugustin\" title=\"Security\"\u003e🛡️\u003c/a\u003e \u003ca href=\"#ideas-AndreasAugustin\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#example-AndreasAugustin\" title=\"Examples\"\u003e💡\u003c/a\u003e \u003ca href=\"#content-AndreasAugustin\" title=\"Content\"\u003e🖋\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/bvolkmer\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7070761?v=4?s=100\" width=\"100px;\" alt=\"Benedikt Volkmer\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBenedikt Volkmer\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/AndreasAugustin/go-gitmoji-cli/issues?q=author%3Abvolkmer\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","funding_links":["https://issuehunt.io/r/andreasaugustin","https://paypal.me/AugustinAndreas","https://github.com/sponsors/AndreasAugustin","https://ko-fi.com/andreasaugustin"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasaugustin%2Fgo-gitmoji-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreasaugustin%2Fgo-gitmoji-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasaugustin%2Fgo-gitmoji-cli/lists"}