Cocogitto – The conventional commits tool box

GitHub Actions workflow status Code coverage status AUR package
Conventional commits Repository license

Website · Installation · Configuration

The conventional commits toolbox

Explore Cocogitto's docs  ▶

Foreword

What is it ?

Cocogitto is a CLI and GitOps toolbox for the conventional commit and semver specifications.

Why ?

There are plenty of tools listed on the conventional commits web site to help you generate changelog, git hooks, commit template etc. Some of them are specifically designed for the conventional commits specification, and some of them are general purpose.

Cocogitto was designed to help you respect the conventional and semver standard and is not intended to be use in any other context.

It strives to be a set of simples, moderns and fast command line interfaces.

Goals

Non goals

Quick start

This readme is a quick tour of what you can do with Cocogitto, for an in-depth guide please refer to the documentation.

Installation

Archlinux

shell yay -S cocogitto-bin

Cargo

shell cargo install cocogitto

Conventional commits

To create conventional commits you can use the coco binary. It has subcommands for the default fix andfeat conventional commits type plus the angular commit conventional commits types.

Example:

```shell

With coco

coco feat "add awesome feature"

With git

git commit -m "feat: add awesome feature" ```

See Coco guide -> Conventional commits.

Auto-bumps

Creating a version with cog bump will perform the following actions :

  1. calculate a version number according to your commit history.
  2. perform configuration defined pre-bump commands.
  3. append the version changelog to your repository changelog file.
  4. create a version commit and tag it.
  5. perform post-bump commands

Example:

```shell

File: cog.toml

prebumphooks = [ "echo {{version}}", ]

postbumphooks = [ "git push", "git push origin {{version}}", ]

[changelog] path = "CHANGELOG.md" template = "remote" remote = "github.com" repository = "cocogittobotplayground" owner = "cocogitto" authors = [ { username = "oknozor", signature = "Paul Delafosse"} ] ```

cog bump example

Changelogs

cog changelog use tera templates to generate markdown changelogs. It has several built-in templates, and you can define your own.

Example:

shell cog changelog

Output :

```markdown

1.2.0 - 2021-11-26

Bug Fixes

Features

Miscellaneous Chores

Refactoring

Tests

See Cog guide -> Changelogs.

GitHub integration

Github action:

You can run cog check and perform auto releases via GitHub action using cocogitto-action.

Example: yaml - name: Semver release uses: oknozor/cocogitto-action@main with: release: true git-user: 'Cog Bot' git-user-email: 'mycoolproject@org.org'

See Github integration -> GitHub action

Github bot:

cocogitto-bot is a standalone, zero config bot checking your pull request against the conventional commits specification.

cog bot example

See Github integration -> GitHub-bot

Similar projects

Contributing

Found a bug, have a suggestion for a new feature ? Please read the contribution guideline and submit an issue.

Licence

All the code in this repository is released under the MIT License, for more information take a look at the LICENSE file.