{body,footer}-max-line-length may fail when git commit --verbose
Expected Behavior
{body,footer}-max-line-length should only validate the body of the message and the footer of the message
Current Behavior
if the git commit is done with the verbose option (that will show the diff), the rules {body,footer}-max-line-length will run even on the diff
Affected packages
- [x] ensure
- [x] rules
Possible Solution
maybe commitlint should have a pre processing step and remove content before the diff
Maybe split by:
const newValue = value.split("diff --git a/")[0];
Steps to Reproduce (for bugs)
- With the code from https://github.com/marionebl/commitlint/pull/436
- Make a change that causes a line to be bigger than 100
-
git addthat change -
git committo open the default editor with the diff (if doesn't show the diff dogit commit --verbose - write a valid commit message
- will fail
Context
Found out when trying to commit this changes: https://github.com/marionebl/commitlint/pull/436
When doing a commit message with: git commit -m "<message>" it was working
But when I was commit like: git commit typing the message in editor and save, it was failling
Your Environment
editor: neovim
| Executable | Version |
|---|---|
commitlint --version |
latest |
git --version |
2.18.0 |
node --version |
v8.11.3 |
Generally I avoid parsing the commit message in commitlint as that work is delegated to conventional-commits-parser.
Filtering out diff lines prob. should be added there, so the entire ecosystem can benefit. What do you think?
Yes I agree, I will create a ticket there and link to this one, so if they agree that should be fixed me or someone will try to fix this issue so we can unblock my other PR
Any hack/tip of how to avoid this body-max-line-length error?