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.2.1.tar.gz (25.1 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for commitlint_autorelease-1.2.1.tar.gz
Algorithm Hash digest
SHA256 63a38f1b684366e04f32f6977e58fdcdec10fb601b1f7b1e622858bbed8ce4b9
MD5 27f54b914f1964f75e29cf52924c992d
BLAKE2b-256 d38f67de99d483a22cd7d7a854d16af80734739b292e77bce24db20a60046ac8

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for commitlint_autorelease-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 03b81398a9f35d6dc74109cfed9379a103fa404355a4e917340bab74341a25c0
MD5 50881be2f53b30aaa9cd1b3f7818802a
BLAKE2b-256 ab207cab14bce998a48556eb529656f47c8e61ab51acbf44607f1c6a766985da

See more details on using hashes here.

Provenance

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