Skip to content

Rules

body-full-stop

  • condition: body ends with value

  • rule: never

  • value

    text
    '.'

body-leading-blank

  • condition: body begins with blank line
  • rule: always

body-empty

  • condition: body is empty
  • rule: never

body-max-length

  • condition: body has value or less characters

  • rule: always

  • value

    text
    Infinity

body-max-line-length

  • condition: body lines has value or less characters

  • rule: always

  • value

    text
    Infinity

body-min-length

  • condition: body has value or more characters

  • rule: always

  • value

    text
    0

body-case

  • condition: body is in case value

  • rule: always

  • value

    text
    'lower-case'
  • possible values

    js
    [
      "lower-case", // default
      "upper-case", // UPPERCASE
      "camel-case", // camelCase
      "kebab-case", // kebab-case
      "pascal-case", // PascalCase
      "sentence-case", // Sentence case
      "snake-case", // snake_case
      "start-case", // Start Case
    ];
  • condition: footer begins with blank line
  • rule: always
  • condition: footer is empty
  • rule: never
  • condition: footer has value or less characters

  • rule: always

  • value

    text
    Infinity
  • condition: footer lines has value or less characters

  • rule: always

  • value

    text
    Infinity
  • condition: footer has value or more characters

  • rule: always

  • value

    text
    0

header-case

  • condition: header is in case value

  • rule: always

  • value

    text
    'lower-case'
  • possible values

    js
    [
      "lower-case", // default
      "upper-case", // UPPERCASE
      "camel-case", // camelCase
      "kebab-case", // kebab-case
      "pascal-case", // PascalCase
      "sentence-case", // Sentence case
      "snake-case", // snake_case
      "start-case", // Start Case
    ];

header-full-stop

  • condition: header ends with value

  • rule: never

  • value

    text
    '.'

header-max-length

  • condition: header has value or less characters

  • rule: always

  • value

    text
    72

header-min-length

  • condition: header has value or more characters

  • rule: always

  • value

    text
    0

header-trim

  • condition: header must not have initial and / or trailing whitespaces
  • rule: always

references-empty

  • condition: references has at least one entry
  • rule: never

scope-enum

  • condition: scope is found in value

  • rule: always

  • value

    text
    []

NOTE

  • This rule always passes if no scopes are provided in the message or the value > is an empty array.
  • When set to always, all message scopes must be found in the value.
  • When set to never, none of the message scopes can be found in the value.

scope-case

  • condition: scope is in case value

  • rule: always

  • value

    text
    'lower-case'
  • possible values

js
[
  "lower-case", // default
  "upper-case", // UPPERCASE
  "camel-case", // camelCase
  "kebab-case", // kebab-case
  "pascal-case", // PascalCase
  "sentence-case", // Sentence case
  "snake-case", // snake_case
  "start-case", // Start Case
];

scope-empty

  • condition: scope is empty
  • rule: never

scope-max-length

  • condition: scope has value or less characters
  • rule: always
  • value
text
Infinity

scope-min-length

  • condition: scope has value or more characters
  • rule: always
  • value
text
0

subject-case

  • condition: subject is in case value
  • rule: always
  • value
js
["sentence-case", "start-case", "pascal-case", "upper-case"];
  • possible values
js
[
  "lower-case", // lower case
  "upper-case", // UPPERCASE
  "camel-case", // camelCase
  "kebab-case", // kebab-case
  "pascal-case", // PascalCase
  "sentence-case", // Sentence case
  "snake-case", // snake_case
  "start-case", // Start Case
];

subject-empty

  • condition: subject is empty
  • rule: never

subject-full-stop

  • condition: subject ends with value
  • rule: never
  • value
text
'.'

subject-max-length

  • condition: subject has value or less characters
  • rule: always
  • value
text
Infinity

subject-min-length

  • condition: subject has value or more characters
  • rule: always
  • value
text
0

subject-exclamation-mark

  • condition: subject has exclamation before the : marker
  • rule: never

type-enum

  • condition: type is found in value

  • rule: always

  • value

    js
    [
      "build",
      "chore",
      "ci",
      "docs",
      "feat",
      "fix",
      "perf",
      "refactor",
      "revert",
      "style",
      "test",
    ];

type-case

  • description: type is in case value

  • rule: always

  • value

    text
    'lower-case'
  • possible values

    js
    [
      "lower-case", // default
      "upper-case", // UPPERCASE
      "camel-case", // camelCase
      "kebab-case", // kebab-case
      "pascal-case", // PascalCase
      "sentence-case", // Sentence case
      "snake-case", // snake_case
      "start-case", // Start Case
    ];

type-empty

  • condition: type is empty
  • rule: never

type-max-length

  • condition: type has value or less characters

  • rule: always

  • value

    text
    Infinity

type-min-length

  • condition: type has value or more characters

  • rule: always

  • value

    text
    0

signed-off-by

  • condition: message has value

  • rule: always

  • value

    text
    'Signed-off-by:'

trailer-exists

  • condition: message has trailer value

  • rule: always

  • value

    text
    'Signed-off-by:'