The conventional commit toolbox

Verified commits️

Create conventional compliant commits at ease.

Automatic Version bump and changelog

Automatically bump version and generate changelog with your own custom steps and workflows.

Release profiles

Your branching model requires different steps for releases, prerelease, hotfix ? We got you covered !

Depends only on libgit2

Cocogitto has two standalone binary, the only system dependency is libgit2.

Conventional git log

Search your commit history matching conventional commit items such as scope and commit type.

Enforce conventional commits via github actions

Check your commit compliance on every push to the remote and create release from your CI pipeline or using our Github bot.

Installation

Cargo

Cocogitto is available on crates.ioopen in new window :

cargo install cocogitto

Archlinux

pacman -S cocogitto

Nixos

nix-env -iA nixos.cocogitto

Void Linux

xbps-install cocogitto

Shell completions

Before getting started you might want to install shell completions (Note that this is not needed for the official archlinux package). Supported shells are bash, elvish, fish and zsh.

Example installing completions:

# Bash
cog generate-completions bash > ~/.local/share/bash-completion/completions/cog

# Bash (macOS/Homebrew)
cog generate-completions bash > $(brew --prefix)/etc/bash_completion.d/cog.bash-completion

# Fish
mkdir -p ~/.config/fish/completions
cog generate-completions fish > ~/.config/fish/completions/cog.fish

# Zsh
cog generate-completions zsh > ~/.zfunc/_cog

Introduction

Cocogitto comes with a single binary named cog.

Use the --help to display options and usage about a specific subcommand :

cog --help
cog changelog --help
# And so on...

Note that if you do not care about automatic release, changelog generation and just want to create conventional commit message you can jump to the conventional commits section.

Conventional commits

cog commit is primarily meant to be used as a replacement for the git commit command. It will produce commits with messages respecting the conventional commits specification with little effort.

Example :

# With git commit
git commit -m "feat: implement the parser specification"

# With cocogitto
cog commit feat "implement the parser specification"

Using cog commit while working on a project using conventional commits is less verbose than good old git cli and prevent typos and common mistake when writing conventional commit messages.

See User guide -> Conventional commits for more information.

Repository management

While local commit are made with the cog commit command, other cog subcommands are meant to manage your repository both locally and in a CI context. For an in depth guide on how to use it see User guide.

GitHub integration

GitHub Action

Anything you can do with cog can be done in your CI pipeline with cocogitto-actionopen in new window.

See Github integration -> GitHub action for more info.

GitHub Bot

To help your contributors respect the specification cocogitto-botopen in new window can decorate your PR with conventional commits status checks.

See Github integration -> GitHub bot for more info.

Docker

There is a docker image for cog available ghcr.io/cocogitto/latestopen in new window See Docker for more info.