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

Primarly 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.
  • NEW 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 INT) 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

-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 FILE) Template compliance

You can provide a simple INI template to validate the commit header/footer format and required symbols.

Usage:

$ commit-format -t /path/to/template.ini

Template schema (INI):

  • [header]
    • pattern: Regex that the first line (header) must match.
  • [body]
    • allow_empty: true/false to allow a commit with only a header (no body).
    • blank_line_after_header: true/false to enforce a blank line between header and body.
  • [footer]
    • required: true/false to require a footer section.
    • pattern: Regex that each footer line must match.

Example template.ini:

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

[structure]
allow_empty = false
blank_line_after_header = true

[footer]
required = true
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 direclty, the script will throw an error:

$ commit-format
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.

Usage:

$ commit-format -b master

-v (--verbosity)

Diplay 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.0.tar.gz (6.7 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.0-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: commit_format-0.2.0.tar.gz
  • Upload date:
  • Size: 6.7 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.0.tar.gz
Algorithm Hash digest
SHA256 615cbd00748c635471deadd49bab28c9a9f6842cd7cccf04b7b1e72b7f8fbd15
MD5 3e6aeca40ac0cac4fc04cefd907a912d
BLAKE2b-256 f4301ab0e4f61e33d46e6d2bbcfa9982a7136406016ec421bf744709ef679f46

See more details on using hashes here.

Provenance

The following attestation bundles were made for commit_format-0.2.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: commit_format-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.0 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efffe5bf10e6748c1538b0e03458346d35594012a2578c46007d4b2b3c50a327
MD5 0e86ac2fdf7aedde113f2ef6560b291a
BLAKE2b-256 38ab84bd86b82850e9f3714e51b9faebbd5de6220c44e87ad4a7ae926ca820f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for commit_format-0.2.0-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