Skip to content

Commit Check enforces commit metadata standards, including commit message, branch naming, committer name/email, commit signoff and more.

License

Notifications You must be signed in to change notification settings

commit-check/commit-check

Repository files navigation

Commit Check

PyPI CI Quality Gate Status pre-commit.ci status CodeCov

Overview

Check commit message formatting, branch naming, commit author, email, and more. The open-source alternative to Yet Another Commit Checker.

  • requiring commit message to match regex
  • requiring branch naming to match regex
  • requiring committer name and email to match regex
  • customizing error message
  • customizing suggest command

Purpose

commit-check is a tool designed for teams.

Its main purpose is to standardize the format of commit message, branch naming, etc, and makes it possible to:

  • writing descriptive commit is easy to read
  • identify branch according to the branch type
  • triggering the specific types of commit/branch CI build
  • automatically generate changelogs

Configuration

Use custom configuration

Create a config file .commit-check.yml under your repository root directory, e.g. .commit-check.yml

Use default configuration

Usage

There are a variety of ways you can use commit-check as follows.

Running as GitHub Action

Please see commit-check/commit-check-action

Running as pre-commit hook

Tip

Make sure pre-commit is installed.

-   repo: https://github.com/commit-check/commit-check
    rev: the tag or revision
    hooks:
    -   id: check-message
    -   id: check-branch

Running as CLI

Global installation

sudo pip3 install -U commit-check

User installation

pip install -U commit-check

Install from git repo

pip install git+https://github.com/commit-check/commit-check.git@main

Then you can run commit-check command line. More about commit-check --help please see docs.

Example

Check commit message failed

Commit rejected by Commit-Check.

  (c).-.(c)    (c).-.(c)    (c).-.(c)    (c).-.(c)    (c).-.(c)
   / ._. \      / ._. \      / ._. \      / ._. \      / ._. \
 __\( C )/__  __\( H )/__  __\( E )/__  __\( C )/__  __\( K )/__
(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)
   || E ||      || R ||      || R ||      || O ||      || R ||
 _.' '-' '._  _.' '-' '._  _.' '-' '._  _.' '-' '._  _.' '-' '._
(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)
 `-´     `-´  `-´     `-´  `-´     `-´  `-´     `-´  `-´     `-´

Invalid commit message => test
It doesn't match regex: ^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test){1}(\([\w\-\.]+\))?(!)?: ([\w ])+([\s\S]*)

The commit message should be structured as follows:

<type>[optional scope]: <description>
[optional body]
[optional footer(s)]

More details please refer to https://www.conventionalcommits.org
Suggest to run => git commit --amend

Check branch naming failed

Commit rejected by Commit-Check.

  (c).-.(c)    (c).-.(c)    (c).-.(c)    (c).-.(c)    (c).-.(c)
   / ._. \      / ._. \      / ._. \      / ._. \      / ._. \
 __\( C )/__  __\( H )/__  __\( E )/__  __\( C )/__  __\( K )/__
(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)
   || E ||      || R ||      || R ||      || O ||      || R ||
 _.' '-' '._  _.' '-' '._  _.' '-' '._  _.' '-' '._  _.' '-' '._
(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)
 `-´     `-´  `-´     `-´  `-´     `-´  `-´     `-´  `-´     `-´

Commit rejected.

Invalid branch name => test
It doesn't match regex: ^(bugfix|feature|release|hotfix|task)\/.+|(master)|(main)|(HEAD)|(PR-.+)

Branches must begin with these types: bugfix/ feature/ release/ hotfix/ task/
Suggest to run => git checkout -b type/branch_name

Versioning

Versioning follows Semantic Versioning.

Have question or feedback?

To provide feedback (requesting a feature or reporting a bug) please post to issues.

License

The scripts and documentation in this project are released under the MIT License

ko-fi

About

Commit Check enforces commit metadata standards, including commit message, branch naming, committer name/email, commit signoff and more.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Languages