Skip to content

Commit

Permalink
fix: ignore empty commit messages #615 (#676)
Browse files Browse the repository at this point in the history
* fix: ignore empty commit messages #615

bypass rules for completely empty commit messages (only of blank
lines/comments in message)

* fix: skip parsing for empty strings

* style: apply autoformatting

Co-authored-by: Mario Nebl <marionebl@users.noreply.github.com>
  • Loading branch information
ctomp and marionebl committed Feb 18, 2020
1 parent 8b394c9 commit c3eb1a7
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 4 deletions.
9 changes: 6 additions & 3 deletions @commitlint/lint/src/lint.test.ts
Expand Up @@ -5,9 +5,12 @@ test('throws without params', async () => {
await expect(error).rejects.toThrow('Expected a raw commit');
});

test('throws with empty message', async () => {
const error = (lint as any)('');
await expect(error).rejects.toThrow('Expected a raw commit');
test('positive on empty message', async () => {
expect(await lint('')).toMatchObject({
valid: true,
errors: [],
warnings: []
});
});

test('positive on stub message and no rule', async () => {
Expand Down
20 changes: 19 additions & 1 deletion @commitlint/lint/src/lint.ts
Expand Up @@ -36,7 +36,25 @@ export default async function lint(
}

// Parse the commit message
const parsed = await parse(message, undefined, opts.parserOpts);
const parsed =
message === ''
? {header: null, body: null, footer: null}
: await parse(message, undefined, opts.parserOpts);

if (
parsed.header === null &&
parsed.body === null &&
parsed.footer === null
) {
// Commit is empty, skip
return {
valid: true,
errors: [],
warnings: [],
input: message
};
}

const allRules: Map<string, BaseRule<never, RuleType>> = new Map(
Object.entries(defaultRules)
);
Expand Down

0 comments on commit c3eb1a7

Please sign in to comment.