go-gitmoji-cli

:octocat: A conventional gitmoji commit interactive command line tool for using emojis on conventional commits. :rocket:

https://github.com/andreasaugustin/go-gitmoji-cli

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

cli conventional-commit gitmoji gitmoji-cli golang

Keywords from Contributors

interpretability standardization hack state-management tensor interaction meshing battery particle energy-systems
Last synced: 4 months ago · JSON representation ·

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
cli conventional-commit gitmoji gitmoji-cli golang
Created over 2 years ago · Last pushed 12 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Citation Codeowners Security

README.md

go-gitmoji-cli

All Contributors <!-- ALL-CONTRIBUTORS-BADGE:END --> CodeQL

ci_go

Lint

goreleaser

```bash


| __ | | __ | __ | | |\/| | | | | __ | | | |] || |] | | | | || | | |__ |___ | ```

commit

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 ```

github issue

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]

config

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 ```

help

```bash

show the version

go-gitmoji-cli --version ```

version

```bash

list the available gitmojis

go-gitmoji-cli list gitmojis ```

list

```bash

list the available commit types

go-gitmoji-cli list commit-types ```

list

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 a git 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 ```

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
andy Augustin

📖 💻 👀 🛡️ 🤔 💡 🖋
Benedikt Volkmer
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

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

All Time
  • Total Commits: 219
  • Total Committers: 5
  • Avg Commits per committer: 43.8
  • Development Distribution Score (DDS): 0.639
Past Year
  • Commits: 77
  • Committers: 4
  • Avg Commits per committer: 19.25
  • Development Distribution Score (DDS): 0.156
Top Committers
Name Email 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
bug (13) enhancement (11) documentation (3) wontfix (1) dependencies (1) go (1)
Pull Request Labels
dependencies (176) go (62) docker (58) github_actions (55) enhancement (16) autorelease: tagged (12) bug (11) documentation (2) autorelease: pending (2)

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
  • Versions: 19
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.9%
Dependent repos count: 10.6%
Average: 13.8%
Stargazers count: 16.6%
Forks count: 19.1%
Last synced: 4 months ago
proxy.golang.org: github.com/AndreasAugustin/go-gitmoji-cli
  • Versions: 19
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Docker Downloads: 29
Rankings
Dependent packages count: 8.9%
Dependent repos count: 10.6%
Average: 13.8%
Stargazers count: 16.6%
Forks count: 19.1%
Last synced: 4 months ago

Dependencies

.github/workflows/ci_go.yml actions
  • actions/checkout v3 composite
  • actions/setup-go v4 composite
.github/workflows/lint.yml actions
  • actions/checkout v2 composite
.devcontainer/docker-compose.yml docker
Dockerfile docker
  • alpine 3.18.2 build
  • node 20.5.0-alpine build
docker-compose.yml docker
go.mod go
  • 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
go.sum go
  • 523 dependencies
.github/workflows/release.yml actions
.github/workflows/release_go.yml actions
  • 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
.github/workflows/release_please.yml actions
  • google-github-actions/release-please-action v3 composite
.github/workflows/test_docker_images.yml actions
  • actions/checkout v3 composite
  • docker/login-action v2 composite