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
File details
Details for the file commitlint_autorelease-1.3.1.tar.gz
.
File metadata
- Download URL: commitlint_autorelease-1.3.1.tar.gz
- Upload date:
- Size: 25.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | af46a521f172b435f74789e9bd4c470eb129eb158b034a9686d5d92de8c752cf |
|
MD5 | c167b636787476ceef80c2e6055e19c9 |
|
BLAKE2b-256 | c521d423889b358775f85a64deb94f94946804238f321b2ffad98502144fd81f |
File details
Details for the file commitlint_autorelease-1.3.1-py3-none-any.whl
.
File metadata
- Download URL: commitlint_autorelease-1.3.1-py3-none-any.whl
- Upload date:
- Size: 24.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fc5eebadcc9cd6ac7a64008c6cbcced235b9795b5da10ed8a6ea19ad5c0541f |
|
MD5 | 5fa21fb8f438b3afc14f04d10257c40b |
|
BLAKE2b-256 | eb91a1b6fd19fd78429da3e121a735a907c61600e77abb8a3845983789245668 |