Socket
Socket
Sign inDemoInstall

@commitlint/config-conventional

Package Overview
Dependencies
10
Maintainers
4
Versions
85
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @commitlint/config-conventional

Shareable commitlint config enforcing conventional commits


Version published
Weekly downloads
2.1M
decreased by-16.58%
Maintainers
4
Created
Weekly downloads
 

Package description

What is @commitlint/config-conventional?

The @commitlint/config-conventional npm package is used to enforce conventional commit messages. This package provides a set of rules that follow the Conventional Commits specification, which standardizes commit messages to make them more readable and to facilitate automatic generation of changelogs.

What are @commitlint/config-conventional's main functionalities?

Enforcing commit message structure

This code snippet is a configuration file that extends the rules from @commitlint/config-conventional. It is used to enforce a conventional commit message structure in your project.

module.exports = {extends: ['@commitlint/config-conventional']};

Linting commit messages

This command line example demonstrates how to lint a commit message using commitlint with the conventional configuration. It will check if the message follows the conventional commit format.

echo 'fix: correct minor typos in code' | npx commitlint

Integrating with commit hooks

This code snippet shows how to integrate commitlint with Husky's commit-msg hook to automatically lint each commit message before it is finalized.

husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

Other packages similar to @commitlint/config-conventional

Readme

Source

@commitlint/config-conventional

Lint your conventional commits

Shareable commitlint config enforcing conventional commits. Use with @commitlint/cli and @commitlint/prompt-cli.

Getting started

npm install --save-dev @commitlint/config-conventional @commitlint/cli
echo "export default {extends: ['@commitlint/config-conventional']};" > commitlint.config.js

Rules

Problems

The following rules are considered problems for @commitlint/config-conventional and will yield a non-zero exit code when not met.

Consult Rules reference for a list of available rules.

type-enum
  • condition: type is found in value

  • rule: always

  • level: error

  • value

    [
      'build',
      'chore',
      'ci',
      'docs',
      'feat',
      'fix',
      'perf',
      'refactor',
      'revert',
      'style',
      'test'
    ];
    
echo "foo: some message" # fails
echo "fix: some message" # passes
type-case
  • description: type is in case value
  • rule: always
  • level: error
  • value
    'lowerCase'
    
echo "FIX: some message" # fails
echo "fix: some message" # passes
type-empty
  • condition: type is empty
  • rule: never
  • level: error
echo ": some message" # fails
echo "fix: some message" # passes
subject-case
  • condition: subject is in one of the cases ['sentence-case', 'start-case', 'pascal-case', 'upper-case']
  • rule: never
  • level: error
echo "fix(SCOPE): Some message" # fails
echo "fix(SCOPE): Some Message" # fails
echo "fix(SCOPE): SomeMessage" # fails
echo "fix(SCOPE): SOMEMESSAGE" # fails
echo "fix(scope): some message" # passes
echo "fix(scope): some Message" # passes
subject-empty
  • condition: subject is empty
  • rule: never
  • level: error
echo "fix:" # fails
echo "fix: some message" # passes
subject-full-stop
  • condition: subject ends with value
  • rule: never
  • level: error
  • value
'.'
echo "fix: some message." # fails
echo "fix: some message" # passes
header-max-length
  • condition: header has value or less characters
  • rule: always
  • level: error
  • value
100
echo "fix: some message that is way too long and breaks the line max-length by several characters" # fails
echo "fix: some message" # passes
  • condition: footer should have a leading blank line
  • rule: always
  • level: warning
echo "fix: some message
BREAKING CHANGE: It will be significant" # warning

echo "fix: some message

BREAKING CHANGE: It will be significant" # passes
  • condition: footer each line has value or less characters
  • rule: always
  • level: error
  • value
100
echo "fix: some message

BREAKING CHANGE: footer with multiple lines
has a message that is way too long and will break the line rule 'line-max-length' by several characters" # fails

echo "fix: some message

BREAKING CHANGE: footer with multiple lines
but still no line is too long" # passes
body-leading-blank
  • condition: body should have a leading blank line
  • rule: always
  • level: warning
echo "fix: some message
body" # warning

echo "fix: some message

body" # passes
body-max-line-length
  • condition: body each line has value or less characters
  • rule: always
  • level: error
  • value
100
echo "fix: some message

body with multiple lines
has a message that is way too long and will break the line rule 'line-max-length' by several characters" # fails

echo "fix: some message

body with multiple lines
but still no line is too long" # passes

Keywords

FAQs

Last updated on 14 Apr 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc