by Torrance Schneider Sr.
The Conventional Commits toolbox
Website · Installation · Configuration
The Conventional Commits toolbox
Cocogitto is a CLI and GitOps toolbox for the Conventional Commits and Semver specifications.
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 used in any other context.
It strives to be a set of simple, modern and fast command line interfaces.
git
replacement. It uses some of libgit2 but only to provide features related to the
Conventional Commits specification. Anything else shall be done with git
.This readme is a quick tour of what you can do with Cocogitto, for an in-depth guide please refer to the documentation.
pacman -S cocogitto
cargo install --locked cocogitto
nix-env -iA cocogitto
xbps-install cocogitto
Note: coco
has been deprecated in favor of the cog commit
command.
To create conventional commits you can use the cog commit
command.
It has subcommands for the default fix
and feat
Conventional Commits types
plus the angular commit
conventional commit types.
Example:
# With cogcog commit feat "add awesome feature" # With gitgit commit -m "feat: add awesome feature"
See User guide -> Conventional commits.
Creating a version with cog bump
will perform the following actions :
Example:
# File: cog.tomlpre_bump_hooks = [ "echo {{version}}",] post_bump_hooks = [ "git push", "git push origin {{version}}",] [changelog]path = "CHANGELOG.md"template = "remote"remote = "github.com"repository = "cocogitto_bot_playground"owner = "cocogitto"authors = [ { username = "oknozor", signature = "Paul Delafosse"}]
cog changelog
uses tera templates to generate markdown changelogs. It has several built-in
templates, and you can define your own.
Example:
cog changelog
Output :
## 1.2.0 - 2021-11-26 #### Bug Fixes - **(parser)** handle lowercase identifier - (7521015) - *oknozor*- handle unknown flag - (e2388dc) - oknozor #### Features - **(parser)** simple parser implementation - (0b25eb6) - *oknozor*- add a new cli flag - (ff84173) - oknozor #### Miscellaneous Chores - **(version)** 1.2.0 - (15d1333) - *oknozor* #### Refactoring - **(parser)** use a parser interface instead of concrete impl - (ea24c36) - *oknozor* #### Tests - add integration test - (bae629c) - *oknozor*
GitHub action:
You can run cog check and perform automatic releases via GitHub action using cocogitto-action.
Example:
- name: Semver release uses: cocogitto/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 requests against the Conventional Commits specification.
See Github integration -> GitHub-bot
Found a bug, have a suggestion for a new feature? Please read the contribution guideline and submit an issue.
All the code in this repository is released under the MIT License, for more information take a look at the LICENSE file.