What Is commitlint?
commitlint is a linter that validates commit messages against rules, typically a conventional commit format, and fails when a message does not conform. It runs as a hook locally or as a check in CI. It enforces the structured commit messages that automated versioning and changelogs depend on.
Why it matters
Release automation that reads commit messages only works if those messages follow the convention. commitlint enforces that at commit time, so the history stays parseable. Running it both as a local hook and a CI check catches violations before they reach the main branch.
Where this shows up in a real pipeline
A definition is only useful if you can recognise the thing in your own logs. In practice this concept surfaces when a job behaves differently between a local run and a runner, which is where most CI debugging starts.
- Compare a local run against a CI run of the same command before assuming a tool is at fault.
- Runner environments differ in shell, PATH, TTY availability, available memory, and disk. Most CI-only behaviour traces to one of those five.
- Pin tool versions so an environment difference cannot be introduced by an unrelated update.