Skip to content

Commit

Permalink
fix: stop truncating the body in presence of dashes (#3476)
Browse files Browse the repository at this point in the history
* test(parser): add failing test

* fix: stop truncating the body in presence of dashes

In the current version of commitlint the body is truncated
unexpectedly when there is a pattern like
'- Something between dashes -' in the commit message body.
The reason for this behavior is that in the commit parser
package the commitlint uses (conventional-commit-parser[1]),
this pattern '- something -' is a special pattern for any
arbitrary filed. For example, if you put '-myNote-' in the
commit message body, everything that comes after this field
will be saved in an arbitrary field called myNote (Or
whatever is written between dashes) and you can use it like
other fields (header, body, etc.), but I believe we should
disable this functionality because, in the commit messages
like the one in the bug report that this commit fixes, the
user might put stack trace in the commit message body and
this way it will be truncated unexpectedly.

Fixes #3428

[1] https://github.com/conventional-changelog/conventional-changelog/blob/master/packages/conventional-commits-parser/README.md
  • Loading branch information
tehraninasab authored Jan 4, 2023
1 parent 0a53d97 commit 02a61be
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
19 changes: 19 additions & 0 deletions @commitlint/parse/src/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,25 @@ test('registers inline #', async () => {
expect(actual.body).toBe('things #reference');
});

test('keep -side notes- in the body section', async () => {
const header = "type(some/scope): subject"
const body =
"CI on master branch caught this:\n\n" +
"```\n" +
"Unhandled Exception:\n" +
"System.AggregateException: One or more errors occurred. (Some problem when connecting to 'api.mycryptoapi.com/eth')\n\n" +
"--- End of stack trace from previous location where exception was thrown ---\n\n" +
"at GWallet.Backend.FSharpUtil.ReRaise (System.Exception ex) [0x00000] in /Users/runner/work/geewallet/geewallet/src/GWallet.Backend/FSharpUtil.fs:206\n" +
"...\n" +
"```";

const message = header + "\n\n" + body

const actual = await parse(message);

expect(actual.body).toBe(body);
});

test('parses references leading subject', async () => {
const message = '#1 some subject';
const opts = await require('conventional-changelog-angular');
Expand Down
1 change: 1 addition & 0 deletions @commitlint/parse/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export default async function parse(
const opts = {
...defaultOpts,
...(parserOpts || {}),
fieldPattern: null
};
const parsed = parser(message, opts) as Commit;
parsed.raw = message;
Expand Down

0 comments on commit 02a61be

Please sign in to comment.