Skip to main content

A tool to check git commit messages format

Project description

commit-format

A tool to check your commit messages format.

Supported checkers

Primarily disigned for to check for spelling mistakes in commit messages, commit-format now comes with various checker allowing to:

  • Check that each message lines does not exceed a length limit.
  • Check for spelling mistake on commit messages.
  • Check commit header/body/footer against a defined template.

Installation

pip install commit-format

Help command will show you all availables options:

commit-format --help

Format options

-l, --limit Line limit check

You can check that every line in the commit message (including the title/header) does not exceed a length limit. By default the value is set to 72.

A limit of '0' --limit 0 will disable the line limit checker.

Usage:

commit-format -l 80

URL in the commit body will not trigger any length warnings if it adheres to the expected format.

my commit message has a ref[1]
...

[1] url://...

-ns, --no-spelling Disable spelling mistake

By default, commit-format checks for common spelling mistakes in the commit messages. This option rely on codespell and may produce some false-positive results. This new option -ns --no-spelling let the user disable the spelling checker.

commit-format -ns

-t, --template Template compliance

You can provide a configuration TOML file template to validate the commit header/footer format and required symbols.

Usage:

commit-format -t /path/to/.commit-format

Template schema (TOML):

  • [header]
    • pattern: Regex that the first line (header) must match.
  • [body]
    • required: (true/false) Require the commit to have a body.
  • [footer]
    • pattern: Regex that the last line (footer) must match.

Example .commit-format:

[header]
# Header line regex:
pattern = ^(feat: |fix: |ci: |doc: ).+$

[body]
# Require commit to have a body. (i.e. prevent single line commit message).
required = true

[footer]
# Footer line regex
pattern = ^(Signed-off-by: ).+$

Behavior option

-a, --all Force checking all commits

By default the script will only run on a branch and stop when reaching the base branch. If run on a base branch directly, the script will throw an error:

Running on branch main. Abort checking commits.

This measure is there to prevent running the script over past commits.

If running on 'main'/'master' is required, option -a will force the script to run regadless the branch name.

Usage:

commit-format -a

-b, --base Base branch name

You can set the base branch name according to your project.
As described in option -a section the base branch name is required to let the script restrict it's analysis on the commits of a branch. Default value for the base branch name is main.

When running this script in a CI environment, you may be required to fetch your base branch manually. See github workflow example.

Usage:

commit-format -b origin/main

-v, --verbosity

Display debug messages from the script.

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

commit_format-0.2.5.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

commit_format-0.2.5-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file commit_format-0.2.5.tar.gz.

File metadata

  • Download URL: commit_format-0.2.5.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for commit_format-0.2.5.tar.gz
Algorithm Hash digest
SHA256 1f0c7461820a3fae900e5dedca75ab99b8dba07c4c1ed71d8057adaaa9ead604
MD5 31d992af256787038672bc29d4b26f72
BLAKE2b-256 5a1fa810b72e8bc5b209cc09f9fa2e16766629f5b7fa3466b5cbb3c3875a757a

See more details on using hashes here.

Provenance

The following attestation bundles were made for commit_format-0.2.5.tar.gz:

Publisher: release.yml on AlexFabre/commit-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file commit_format-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: commit_format-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for commit_format-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1299dc92b047ac3e5e41774e5e26b921f68a0a4e269454166f0f77a64d52f2d4
MD5 e01a57e0d7a029e989c030c44d29f86b
BLAKE2b-256 b0ccc91450943bf223421ba2eb4a1ec12698a5003f04068a3131ecd66267622b

See more details on using hashes here.

Provenance

The following attestation bundles were made for commit_format-0.2.5-py3-none-any.whl:

Publisher: release.yml on AlexFabre/commit-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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