Skip to main content

commitlint is is a pre-commit hook designed to lint your commit messages according to the Conventional Commits standard.

Project description

commitlint

PyPI version CI status Downloads codecov License

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

  1. Add the following configuration on .pre-commit-config.yaml.

    repos:
    ...
    
    - repo: https://github.com/opensource-nepal/commitlint
        rev: v0.2.1
        hooks:
        - id: commitlint
    
    ...
    
  2. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

commitlint_autorelease-1.3.1.tar.gz (25.1 kB view details)

Uploaded Source

Built Distribution

commitlint_autorelease-1.3.1-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

File details

Details for the file commitlint_autorelease-1.3.1.tar.gz.

File metadata

File hashes

Hashes for commitlint_autorelease-1.3.1.tar.gz
Algorithm Hash digest
SHA256 af46a521f172b435f74789e9bd4c470eb129eb158b034a9686d5d92de8c752cf
MD5 c167b636787476ceef80c2e6055e19c9
BLAKE2b-256 c521d423889b358775f85a64deb94f94946804238f321b2ffad98502144fd81f

See more details on using hashes here.

File details

Details for the file commitlint_autorelease-1.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for commitlint_autorelease-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3fc5eebadcc9cd6ac7a64008c6cbcced235b9795b5da10ed8a6ea19ad5c0541f
MD5 5fa21fb8f438b3afc14f04d10257c40b
BLAKE2b-256 eb91a1b6fd19fd78429da3e121a735a907c61600e77abb8a3845983789245668

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page