commitlint-config-squash-pr

Sharable commitlint config enforcing a max commit message header length when squashing GitHub PRs

MIT License

Downloads
1K
Stars
6
Committers
3

commitlint-config-squash-pr

Sharable commitlint config for enforcing a maximum commit message header length, taking into account the larger size of squashed PR commit messages generated when using the "Squash and merge" button in GitHub PRs.

When using the "Squash and merge" button on a GitHub PR, the PR ID (e.g. 234) will be appended to the end of the resulting squashed commit message in the form (#234). This makes the final commit message header longer than the commit message header that commitlint validated in the PR, potentially resulting in the final commit failing to pass CI.

This module takes this into account when validating the commit message before the PR is merged.

Installation

npm install commitlint-config-squash-pr --save-dev

Usage example

In this example we're extending the popular @commitlint/config-conventional ruleset by using a local commitlint.config.js file:

// commitlint.config.js
module.exports = {
  extends: [
    'squash-pr', // the commitlint-config- prefix is implied
    '@commitlint/config-conventional'
  ]
}

Read more about Sharable configuration.

Supported CI systems

  • Travis CI
  • Jenkins (Multibranch Pipelines)

License

MIT