https://github.com/ttys3/git-cz conventional commits tool with fuzzy matcher support, with extra changelog, versioning, validation feature.
[package]
name = "git-cz"
version = "0.6.0"
description = "Git conventional commit tools written in Rust"
keywords = ["git", "conventional", "commit", "changelog", "semantic"]
categories = ["development-tools::build-utils"]
readme = "README.md"
homepage = "https://git-cz.github.io"
repository = "https://github.com/ttys3/git-cz.git"
license = "MIT"
authors = ["Hannes De Valkeneer <hannes@de-valkeneer.be>"]
edition = "2018"
exclude = [
    ".*",
]

[dependencies]
chrono = { version = "0.4.19", features = ["serde"] }
git2 = { version = "0.13.15", default-features = false, features = [] }
handlebars = { version = "3.5.2", features = [ "dir_source" ] }
regex = "1.4.3"
semver = { version = "0.10.0", features = ["serde"] }
serde = { version = "1.0.119", features = ["derive"] }
serde_yaml = "0.8.15"
structopt = "0.3.21"
url = "2.2.0"
dialoguer = "0.7.3"
thiserror = "1.0.23"
skim = "0.9.3"
console = "0.15.0"

[build-dependencies]
structopt = "0.3.21"

[package.metadata.deb]
depends = ""
extended-description = """\
Git conventional commit tools written in Rust. \
Create a changelog. \
Check if commits follow the convention. \
Calculate the next version based on the conventional commits."""
assets = [
    # bin
    ["target/release/git-cz", "/usr/local/bin/", "755"],
    # completions
    ["target/completions/git-cz.bash", "/usr/share/bash-completion/completions/", "644"],
    ["target/completions/_git-cz", "/usr/share/zsh/vendor-completions/", "644"],
    ["target/completions/git-cz.fish", "/usr/share/fish/completions/", "644"],
]

[patch.crates-io]
# dialoguer = { path = "../../lib/dialoguer" }
# console = { path = "../../lib/console" }
console = { git = "https://github.com/ttys3/console.git", version = "0.15.0" }
dialoguer = { git = "https://github.com/ttys3/dialoguer.git", version = "0.7.3" }