All Projects → its-danny → koji

its-danny / koji

Licence: MIT license
🦊 An interactive CLI for creating conventional commits.

Programming Languages

rust
11053 projects
shell
77523 projects

Projects that are alternatives of or similar to koji

cocogitto
The Conventional Commits toolbox
Stars: ✭ 242 (+868%)
Mutual labels:  semver, conventional-commits, rust-cli
turbogit
Opinionated cli enforcing clean git workflow without comprising UX
Stars: ✭ 42 (+68%)
Mutual labels:  semver, conventional-commits
change
A simple tool that automates generating and updating a changelog
Stars: ✭ 47 (+88%)
Mutual labels:  semver, conventional-commits
git
🔀 semantic-release plugin to commit release assets to the project's git repository
Stars: ✭ 235 (+840%)
Mutual labels:  conventional-commits
gradle-semantic-build-versioning
Gradle plugin to generate version-numbers and tags using semantic versioning
Stars: ✭ 19 (-24%)
Mutual labels:  semver
gradle-versioner
Gradle Version Plugin. Generates semantic versions with git meta data per branch.
Stars: ✭ 25 (+0%)
Mutual labels:  semver
action-semantic-pull-request
A GitHub Action that ensures that your PR title matches the Conventional Commits spec.
Stars: ✭ 377 (+1408%)
Mutual labels:  conventional-commits
dont-crack
semantic-release plugin checking if the new semantic release is breaking dependent projects
Stars: ✭ 14 (-44%)
Mutual labels:  semver
gfold
CLI tool to help keep track of your Git repositories, written in Rust
Stars: ✭ 179 (+616%)
Mutual labels:  rust-cli
next-ver
Tells you the next semantic version for your local package
Stars: ✭ 27 (+8%)
Mutual labels:  semver
zerover
0️⃣ Minimalist versioning scheme for devs who can't be bothered.
Stars: ✭ 141 (+464%)
Mutual labels:  semver
probot-semver
A GitHub app that provides automatic semantic versioning support
Stars: ✭ 15 (-40%)
Mutual labels:  semver
ongeza
An automated way to follow the Semantic Versioning Specification
Stars: ✭ 36 (+44%)
Mutual labels:  semver
semver-generator
Semantic version generator using git commit keywords and overrides
Stars: ✭ 26 (+4%)
Mutual labels:  semver
ocaml-semver
Semantic version handling for OCaml
Stars: ✭ 16 (-36%)
Mutual labels:  semver
verl
SemVer 2.0 parsing, matching, and comparisons for Erlang
Stars: ✭ 28 (+12%)
Mutual labels:  semver
commithelper
A tool to create and lint commit messages
Stars: ✭ 35 (+40%)
Mutual labels:  conventional-commits
semver
Kotlin data class for Semantic Versioning 2.0.0 specification (SemVer)
Stars: ✭ 51 (+104%)
Mutual labels:  semver
conventional-pre-commit
A pre-commit hook that checks commit messages for Conventional Commits formatting
Stars: ✭ 66 (+164%)
Mutual labels:  conventional-commits
bump
A generic version tracking and update tool
Stars: ✭ 33 (+32%)
Mutual labels:  semver

🦊 koji

An interactive CLI for creating conventional commits, built on cocogitto and inspired by cz-cli.

Current Release GitHub Workflow Status Codecov Dependency Status Conventional Commits License

Commit with koji

Features

  • Create conventional commits with ease
  • Use alongside cocogitto for automatic versioning, changelog generation, and more
  • Use emoji 👋 (or, shortcodes)
  • Autocomplete for commit scope
  • Run as a git hook
  • Custom commit types

Installation

webi

curl -sS https://webinstall.dev/koji | bash

cargo

cargo install --locked koji

Be sure to have git installed first.

Usage

The basic way to use koji is as a replacement for git commit, enforcing the conventional commit standard by writing your commit through an interactive prompt.

# Do some work
cd dev/nasa
git add stars

# Commit your work
koji

See koji --help for more options.

Using as a git hook

An alternative way to use koji is as a git hook, running it any time you run git commit.

Manually

Update .git/hooks/prepare-commit-msg with the following code:

#!/bin/bash
exec < /dev/tty && koji --hook || true

husky

npx husky add .husky/prepare-commit-msg "exec < /dev/tty && koji --hook || true

rusty-hook

Add this to your .rusty-hook.toml:

prepare-commit-msg = "exec < /dev/tty && koji --hook || true"

Similar should work for any hook runner, just make sure you're using it with the prepare-commit-msg hook.

When using it as a hook, any message passed to git commit -m will be used for the commit summary. Writing your commit as a conventional commit, e.g. git commit -m "feat(space): delete some stars", will bypass koji altogether.

Configuration

Config files are prioritized in the following order:

  • Passed in via --config
  • .koji.toml in the working directory
  • ~/.config/koji/config.toml
  • The default config

Options

emoji

  • Type: bool
  • Optional: true
  • Description: Prepend the commit summary with relevant emoji based on commit type.
emoji = true

autocomplete

  • Type: bool
  • Optional: true
  • Description: Enables auto-complete for scope prompt via scanning commit history.
autocomplete = true

commit_types

  • Type: Vec<CommitType>
  • Optional: true
  • Description: A list of commit types to use instead of the default.
[[commit_types]]
name = "feat"
emoji = ""
description = "A new feature"
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].