- 
                Notifications
    
You must be signed in to change notification settings  - Fork 947
 
Open
Labels
Description
Steps to Reproduce
I have prepared a branch in my repo [here (branch commitlint-error-testing)](https://github.com/Joxtacy/automatic-release-notes-testing/tree/commitlint-error-testing) which has the broken config.
1. Have a config file with `parserPreset` config.
import type {UserConfig} from '@commitlint/types'; 
import {RuleConfigSeverity} from '@commitlint/types'; 
const Configuration: UserConfig = {
  extends: ['@commitlint/config-conventional'],
  parserPreset: 'conventional-changelog-atom',
  formatter: '@commitlint/format',
  rules: {
    'type-enum': [RuleConfigSeverity.Error, 'always', ['foo']], 
  },
  // ...
};
export default Configuration;
2. Create a commit with a commit message similar to `feat!: subject`Current Behavior
When the linter runs with a commit message containing ! the linter spits out the following error
❯ git commit -m 'feat!: subject'
╭──────────────────────────────────────╮
│ 🥊 lefthook v1.7.2  hook: commit-msg │
╰──────────────────────────────────────╯
┃  lint commit message ❯
⧗   input: feat!: subject
✖   subject may not be empty [subject-empty]
✖   type may not be empty [type-empty]
⚠   scope may not be empty [scope-empty]
✖   found 2 problems, 1 warnings
ⓘ   Get help: https://github.com/conventional-changelog/commitlint/#what-is-commitlint
  ────────────────────────────────────
summary: (done in 0.70 seconds)
🥊  lint commit message
Expected Behavior
I expect the linter to pass with a message containing !, like feat!: subject.
Affected packages
- cli
 - core
 - prompt
 - config-angular
 
Possible Solution
Haven't looked into the codebase, so can't give a possible solution to this right now.
Context
I'm just trying to run the linter on a commit hook, and to have the ! be correctly parsed. 🙃
commitlint --version
@commitlint/cli@19.3.0
git --version
v2.45.2
node --version
v20.15.0
mheob, kleinfreund and borisdamevin