A gitmoji interactive client for using gitmojis on commit messages.

Related tags

Utilities gitmoji-rs
Overview

gitmoji in Rust

MIT licensed Continuous integration Dependabot enabled

This is just an opinionated version of gitmoji-cli written in Rust .

A gitmoji interactive client for using gitmojis on commit messages.

Install

Pick up the latest binary

Or If you have the Rust toolchain installed you can install with:

cargo install gitmoji-rs

Usage

gitmoji help, gitmoji --help

Provide the CLI help.

❯ gitmoji help
gitmoji-rs 0.1.0
Igor Laborie <[email protected]>
A gitmoji client for using emojis on commit messages

USAGE:
    gitmoji [OPTIONS] <SUBCOMMAND>

OPTIONS:
    -h, --help       Print help information
    -v, --verbose    Verbose mode
    -V, --version    Print version information

SUBCOMMANDS:
    commit    Interactively commit using the prompts
    help      Print this message or the help of the given subcommand(s)
    init      Setup gitmoji preferences
    list      List all available gitmojis
    search    Search gitmojis
    update    Sync emoji list with the repository

Note that you can also ask help on a specific sub-command, try gitmoji help init

gitmoji init

Interactively initialize the configuration

❯ gitmoji init
✔ Enable automatic "git add ." · no
✔ Select how emojis should be used in commits · 😄
✔ Enable signed commits · no
✔ Enable scope prompt · no
✔ Set gitmojis api url · https://gitmoji.dev/api/gitmojis

Note that you can generate a default configuration without interaction you can use gitmoji init --default.

gitmoji commit

Interactively create a git commit

❯ gitmoji commit
✔ Pick your flavor · 🚀 :rocket: rocket - Deploy stuff.
✔ Enter the commit title · Initial version
✔ Enter the commit message: · Adding require feature for a basic usage (init, update, list, search, and commit)
[main f4525b2] :rocket: Initial version
 12 files changed, 213 insertions(+), 78 deletions(-)
 create mode 100644 .github/workflows/bloat.yaml
 create mode 100644 .github/workflows/lint.yaml
 rename .github/workflows/{ci.yaml => tests.yaml} (51%)
 create mode 100644 CHANGELOG.md
 create mode 100644 README.md

Note that it's internally use the git command.

gitmoji update

Update the gitmojis list based on the provided api url.

❯ gitmoji update
🎨	:art:	Improve structure / format of the code.
⚡️	:zap:	Improve performance.
🔥	:fire:	Remove code or files.
🐛	:bug:	Fix a bug.
🚑️	:ambulance:	Critical hotfix.
✨	:sparkles:	Introduce new features.
📝	:memo:	Add or update documentation.
🚀	:rocket:	Deploy stuff.
💄	:lipstick:	Add or update the UI and style files.
🎉	:tada:	Begin a project.
...

gitmoji list

List available gitmojis.

❯ gitmoji list
🎨	:art:	Improve structure / format of the code.
⚡️	:zap:	Improve performance.
🔥	:fire:	Remove code or files.
🐛	:bug:	Fix a bug.
🚑️	:ambulance:	Critical hotfix.
✨	:sparkles:	Introduce new features.
📝	:memo:	Add or update documentation.
🚀	:rocket:	Deploy stuff.
💄	:lipstick:	Add or update the UI and style files.
🎉	:tada:	Begin a project.
...

gitmoji search

Search a gitmoji

❯ gitmoji search bug
🐛	:bug:	Fix a bug.
🏗️	:building_construction:	Make architectural changes.
👔	:necktie:	Add or update business logic

Missing features

Due to a bug, we cannot use yet.

See Issue #1, help welcome

License

This Action is distributed under the terms of the MIT license, see LICENSE for details.

Contribute and support

Any contributions are welcomed!

Comments
  • ⬆️ Bump tokio from 1.21.2 to 1.23.1

    ⬆️ Bump tokio from 1.21.2 to 1.23.1

    Bumps tokio from 1.21.2 to 1.23.1.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.23.1

    This release forward ports changes from 1.18.4.

    Fixed

    • net: fix Windows named pipe server builder to maintain option when toggling pipe mode (#5336).

    #5336: tokio-rs/tokio#5336

    Tokio v1.23.0

    Fixed

    • net: fix Windows named pipe connect (#5208)
    • io: support vectored writes for ChildStdin (#5216)
    • io: fix async fn ready() false positive for OS-specific events (#5231)

    Changed

    • runtime: yield_now defers task until after driver poll (#5223)
    • runtime: reduce amount of codegen needed per spawned task (#5213)
    • windows: replace winapi dependency with windows-sys (#5204)

    #5208: tokio-rs/tokio#5208 #5216: tokio-rs/tokio#5216 #5213: tokio-rs/tokio#5213 #5204: tokio-rs/tokio#5204 #5223: tokio-rs/tokio#5223 #5231: tokio-rs/tokio#5231

    Tokio v1.22.0

    Added

    • runtime: add Handle::runtime_flavor (#5138)
    • sync: add Mutex::blocking_lock_owned (#5130)
    • sync: add Semaphore::MAX_PERMITS (#5144)
    • sync: add merge() to semaphore permits (#4948)
    • sync: add mpsc::WeakUnboundedSender (#5189)

    Added (unstable)

    • process: add Command::process_group (#5114)
    • runtime: export metrics about the blocking thread pool (#5161)
    • task: add task::id() and task::try_id() (#5171)

    Fixed

    • macros: don't take ownership of futures in macros (#5087)
    • runtime: fix Stacked Borrows violation in LocalOwnedTasks (#5099)
    • runtime: mitigate ABA with 32-bit queue indices when possible (#5042)
    • task: wake local tasks to the local queue when woken by the same thread (#5095)
    • time: panic in release mode when mark_pending called illegally (#5093)
    • runtime: fix typo in expect message (#5169)

    ... (truncated)

    Commits
    • 1a997ff chore: prepare Tokio v1.23.1 release
    • a8fe333 Merge branch 'tokio-1.20.x' into tokio-1.23.x
    • ba81945 chore: prepare Tokio 1.20.3 release
    • 763bdc9 ci: run WASI tasks using latest Rust
    • 9f98535 Merge remote-tracking branch 'origin/tokio-1.18.x' into fix-named-pipes-1.20
    • 9241c3e chore: prepare Tokio v1.18.4 release
    • 699573d net: fix named pipes server configuration builder
    • 3ce5a26 chore: prepare Tokio v1.23 release (#5270)
    • 644cb82 rt: fix *_closed false positives (#5231)
    • a1316cd io: impl std::io::BufRead on SyncIoBridge\<T> (#5265)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • RUSTSEC-2021-0139: ansi_term is Unmaintained

    RUSTSEC-2021-0139: ansi_term is Unmaintained

    ansi_term is Unmaintained

    | Details | | | ------------------- | ---------------------------------------------- | | Status | unmaintained | | Package | ansi_term | | Version | 0.12.1 | | URL | https://github.com/ogham/rust-ansi-term/issues/72 | | Date | 2021-08-18 |

    The maintainer has adviced this crate is deprecated and will not receive any maintenance.

    The crate does not seem to have much dependencies and may or may not be ok to use as-is.

    Last release seems to have been three years ago.

    Possible Alternative(s)

    The below list has not been vetted in any way and may or may not contain alternatives;

    See advisory page for additional details.

    opened by github-actions[bot] 0
  • Configure the commit message with a template

    Configure the commit message with a template

    Is your feature request related to a problem? Please describe. As a user, I should be able to configure the commit message template.

    A template could be like With things like "{emoji} [{spec}] {message}"

    We can also imagine to have a check subcommand to checks commit messages

    enhancement 
    opened by ilaborie 0
  • Provide a scope history

    Provide a scope history

    See https://docs.rs/dialoguer/0.10.1/dialoguer/struct.Input.html#method.history_with

    We can store the history close to the configuration file.

    The history should be related to the repository

    enhancement good first issue 
    opened by ilaborie 0
  • Git hook does not work

    Git hook does not work

    With the hook feature, we can create a git prepare-commit-msg.

    cargo install gitmoji-rs --features hook
    # In a git repository
    gitmoji hook add
    git commit
    
    thread 'main' has overflowed its stack
                                          fatal runtime error: stack overflow
                                                                             .git/hooks/prepare-commit-msg: line 4: 86552 Abort trap: 6           gitmoji -v hook apply "$1" "$2"
    
    bug help wanted 
    opened by ilaborie 2
Owner
igor
igor
A git prepare-commit-msg hook for authoring commit messages with GPT-3.

gptcommit A git prepare-commit-msg hook for authoring commit messages with GPT-3. With this tool, you can easily generate clear, comprehensive and des

Roger Zurawicki 3 Jan 19, 2023
A CLI tool that automatically writes commit messages for you.

Automagically-generated commit messages A CLI tool that generates commit messages from your staged changes, built in Rust and using OpenAI's Codex. In

Miguel Piedrafita 839 Jan 6, 2023
Easily add emojis to your git commit messages 😎

gimoji A CLI tool that makes it easy to add emojis to your git commit messages. It's very similar to (and is based on) gitmoji-cli but written in Rust

Zeeshan Ali Khan 12 May 29, 2023
Universal changelog generator using conventional commit+ with monorepo support. Written in Rust.

chlog Universal changelog generator using conventional commit+ with monorepo support. chlog can generate the changelog from the conventional commits w

Jeff Yang 3 Nov 27, 2022
Spot coupling by finding out which files are always in the same commit

git moves-together This tells you when files in the repository frequently move together. This lets you identify where the coupling is in the system. C

Billie Thompson 14 Oct 31, 2022
Mirror of oxipng for pre-commit.

oxipng pre-commit mirror Mirror of oxipng for pre-commit. Installation Add to your pre-commit config: - repo: https://github.com/adamchainz/pre-comm

Adam Johnson 11 Jan 15, 2022
Openfare - Monetize software with one commit.

OpenFare ?? Monetize software with one commit. ?? OpenFare monetizes any software library with one code change. The goal: fund the next million softwa

null 172 Dec 2, 2022
A partial reimplementation of pre-commit in Rust

preco A partial reimplementation of pre-commit in Rust. Important Heavily just a proof-of-concept and work-in-progress. There are bits that could prob

Aarni Koskela 8 Feb 22, 2024
🦊 An interactive cli for creating conventional commits.

?? koji An interactive cli for creating conventional commits, built on cocogitto and inspired by cz-cli. Installation Not yet. ?? Usage Using koji # C

Danny 40 Dec 8, 2022
Better error messages for axum framework.

axum-debug This is a debugging crate that provides better error messages for axum framework. axum is a great framework for developing web applications

Eray Karatay 3 Feb 3, 2022
Log defmt messages over the serial port.

defmt-serial A defmt target for logging over a serial port. Messages can e.g. be read using socat and passed through defmt-print, see example-artemis

Gaute Hope 10 Oct 5, 2022
Garden monitoring system using m328p Arduino Uno boards. 100% Rust [no_std] using the avr hardware abstraction layer (avr-hal)

uno-revive-rs References Arduino Garden Controller Roadmap uno-revive-rs: roadmap Components & Controllers 1-2 Uno R3 m328p Soil moisture sensor: m328

Ethan Gallucci 1 May 4, 2022
Simple git/hg tui client focused on keyboard shortcuts

verco A simple Git/Hg tui client focused on keyboard shortcuts Screenshots Platforms This project uses Cargo and pure Rust stable and works on latest

Matheus Lessa Rodrigues 214 Dec 26, 2022
client-server notification center for dbus desktop notifications

tsuchita A client-server notification center for dbus desktop notifications. Specifically org.freedesktop.Notifications dbus messages. Motivation I ju

Jeff Zhao 7 Oct 9, 2022
This is an implementation defining standard for client-side-validation

Client-side-validation Foundation Libraries This is an implementation defining standard of client-side-validation representing a set of its Foundation

LNP/BP Association 8 Dec 3, 2022
Rust client for AWS Infinidash service.

AWS Infinidash - Fully featured Rust client Fully featured AWS Infinidash client for Rust applications. You can use the AWS Infinidash client to make

Rafael Carício 15 Feb 12, 2022
Rusty NuGet client

turron It's a NuGet client built in Rust. It's not really meant to replace existing nuget clients. It's more of a playground for experimenting with re

Kat Marchán 18 Feb 2, 2022
FerrisChat's Client

egui template This is a template repo for egui. The goal is for this to be the simplest way to get started writing a GUI app in Rust. You can compile

FerrisChat 5 Nov 23, 2022
Supernova client in Rust

What is this? A client library for the Supernova REST API. Usage use iron_planet::{Supernova, RequestConfig}; fn main() { // Instantiate an unpri

Nova Universidade Nova de Lisboa 1 Dec 29, 2021