Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Grumphp Laravel Package

phpro/grumphp

GrumPHP is a Composer plugin that installs Git hooks to run quality checks on every commit. It executes configured tasks like tests and linters, blocks failing commits, and helps teams enforce coding standards and best practices automatically.

View on GitHub
Deep Wiki
Context7

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.

# 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: []
            skip_on_merge_commit: true
            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.

skip_on_merge_commit

Default:true

Skips checking the commit message when the commit is a merge.

additional_modifiers

Default: ''

Add one or multiple additional modifiers like:

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:

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:

type_scope_conventions:
    types: []
    scopes:
        - api
        - index
        - user
        - language
        - browser
        - environment

subject_pattern

Default: ([a-zA-Z0-9-_ #@'/"]+)

To be used with type_scope_conventions

Specify a subject pattern. Default allows [a-zA-Z0-9-_ #@'/"]+ pattern.

Add pattern like:

type_scope_conventions:
    types: []
    scopes: ~
    subject_pattern: >-
        ([a-zA-Zа-яА-Я0-9-_ #@'\/\"]+)
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
cadot.eu/make
besmartand-pro/php-quality-config
sentix/ai-chatbot
codifyo/ts-generator-bundle
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky