conventional-changelog/commitlint

{body,footer}-max-line-length may fail when git commit --verbose

Open

#437 创建于 2018年9月9日

在 GitHub 查看
 (4 评论) (2 反应) (0 负责人)TypeScript (896 fork)batch import
bughelp wanted

仓库指标

Star
 (15,497 star)
PR 合并指标
 (平均合并 12小时 56分钟) (30 天内合并 52 个 PR)

描述

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

  • ensure
  • 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)

  1. With the code from https://github.com/marionebl/commitlint/pull/436
  2. Make a change that causes a line to be bigger than 100
  3. git add that change
  4. git commit to open the default editor with the diff (if doesn't show the diff do git commit --verbose
  5. write a valid commit message
  6. 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

贡献者指南