commitlint is is a pre-commit hook designed to lint your commit messages according to the Conventional Commits standard.
Project description
commitlint
commitlint is a tool designed to lint your commit messages according to the Conventional Commits standard for your pre-commit hook and GitHub Actions.
How to use
For pre-commit
-
Add the following configuration on
.pre-commit-config.yaml
.repos: ... - repo: https://github.com/opensource-nepal/commitlint rev: v0.2.1 hooks: - id: commitlint ...
-
Install the
commit-msg
hook in your project repo:pre-commit install --hook-type commit-msg
NOTE: Installing using only
pre-commit install
will not work.
For github-actions
If you have any existing workflows, add the following steps:
...
steps:
...
- name: Run commitlint
uses: opensource-nepal/commitlint@v0.2.1
...
If you don't have any workflows, create a new GitHub workflow, e.g. .github/workflows/commitlint.yaml
.
name: Commitlint
on:
push:
branches: ['main']
pull_request:
jobs:
commitlint:
runs-on: ubuntu-latest
name: Commitlint
steps:
- uses: actions/checkout@v4
- name: Run commitlint
uses: opensource-nepal/commitlint@v0.2.1
NOTE: commitlint GitHub Actions will only be triggered by "push" or "pull_request" events.
GitHub Action Inputs
# | Name | Type | Default | Description |
---|---|---|---|---|
1 | fail_on_error | Boolean | true | Determines whether the GitHub Action should fail if commitlint fails. |
GitHub Action Outputs
# | Name | Type | Description |
---|---|---|---|
1 | exit_code | Integer | The exit code of the commitlint step. |
2 | status | String | The outcome of the commitlint step. Possible values: 'success' or 'failure'. |
CLI (Command Line Interface)
Installation
pip install commitlint
Usage
$ commitlint --help
usage: commitlint [-h] [-V] [--file FILE] [--hash HASH] [--from-hash FROM_HASH] [--to-hash TO_HASH] [--skip-detail] [commit_message]
Check if a commit message follows the conventional commit format.
positional arguments:
commit_message The commit message to be checked.
optional arguments:
-h, --help show this help message and exit
-V, --version show program's version number and exit
--file FILE Path to a file containing the commit message.
--hash HASH Commit hash
--from-hash FROM_HASH
From commit hash
--to-hash TO_HASH To commit hash
--skip-detail Skip the detailed error message check
Examples
Check commit message directly:
$ commitlint "chore: my commit message"
Check commit message from file:
$ commitlint --file /foo/bar/commit-message.txt
Check commit message of a hash:
$ commitlint --hash 9a8c08173
Check commit message of a hash range:
$ commitlint --from-hash 00bf73fef7 --to-hash d6301f1eb0
Check commit message skipping the detail check:
$ commitlint --skip-detail "chore: my commit message"
# or
$ commitlint --skip-detail --hash 9a8c08173
Version check:
$ commitlint --version
# or
$ commitlint -V
Contribution
We appreciate feedback and contribution to this package. To get started please see our contribution guide.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for commitlint_autorelease-1.2.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63a38f1b684366e04f32f6977e58fdcdec10fb601b1f7b1e622858bbed8ce4b9 |
|
MD5 | 27f54b914f1964f75e29cf52924c992d |
|
BLAKE2b-256 | d38f67de99d483a22cd7d7a854d16af80734739b292e77bce24db20a60046ac8 |
Hashes for commitlint_autorelease-1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03b81398a9f35d6dc74109cfed9379a103fa404355a4e917340bab74341a25c0 |
|
MD5 | 50881be2f53b30aaa9cd1b3f7818802a |
|
BLAKE2b-256 | ab207cab14bce998a48556eb529656f47c8e61ab51acbf44607f1c6a766985da |