# Git commit message The Git commit message task ensures commit messages match the specified patterns. For example: if you are working with JIRA, it is possible to add a pattern for the JIRA issue number. ```yaml # grumphp.yml grumphp: tasks: git_commit_message: allow_empty_message: false enforce_capitalized_subject: true enforce_no_subject_punctuations: false enforce_no_subject_trailing_period: true enforce_single_lined_subject: true type_scope_conventions: [] max_body_width: 72 max_subject_width: 60 matchers: Must contain JIRA issue number: /JIRA-\d+/ case_insensitive: true multiline: true additional_modifiers: '' ``` **allow_empty_message** *Default: false* Controls whether or not empty commit messages are allowed. **enforce_capitalized_subject** *Default: true* Ensures that the commit message subject line starts with a capital letter. **enforce_no_subject_punctuations** *Default: false* Ensures that the commit message subject line doesn't have any punctuations characters. **enforce_no_subject_trailing_period** *Default: true* Ensures that the commit message subject line doesn't have a trailing period. **enforce_single_lined_subject** *Default: true* Ensures that the commit message subject line is followed by a blank line. **max_body_width** *Default: 72* Preferred limit on the commit message body lines. Set to 0 to disable the check. **max_subject_width** *Default: 60* Preferred limit on the commit message subject line. Set to 0 to disable the check. **matchers** *Default: []* Use this parameter to specify one or multiple patterns. The value can be in regex or glob style. Here are some example matchers: - /JIRA-([0-9]*)/ - pre-fix* - *suffix - ... **case_insensitive** *Default: true* Mark the matchers as case sensitive. **multiline** *Default:true* Mark the matchers as multiline. **additional_modifiers** *Default: ''* Add one or multiple additional modifiers like: ```yaml additional_modifiers: 'u' # or additional_modifiers: 'xu' ``` **type_scope_conventions** *Default: []* Enable a commonly used convention for the subject line. Format is as follows: ``` type[(scope)]: subject ``` *The scope is optional* Good examples: ``` fix: Security issue with password hashing fix(Password): Security issue with password hashing ``` **types** *Default: []* *To be used with `type_scope_conventions`* Specify a list of acceptable types. Default allows ***all*** types. Add one or multiple types like: ```yaml type_scope_conventions: - types: - build - ci - chore - docs - feat - fix - perf - refactor - revert - style - test - scopes: [] ``` **scopes** *Default: []* *To be used with `type_scope_conventions`* Specify a list of acceptable scopes. Default allows ***all*** scopes. Add one or multiple scopes like: ```yaml type_scope_conventions: - types: [] - scopes: - api - index - user - language - browser - environment ```