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

Composer Git Hooks Laravel Package

brainmaestro/composer-git-hooks

Manage Git hooks via Composer scripts. Install, version, and run pre-commit/pre-push and more across your team using composer install/update. Simple config, no extra tooling, keeps hooks consistent in any PHP project.

View on GitHub
Deep Wiki
Context7
v3.0.0
v2.8.5

The previous release had issues with hook definitions that did not have a command per line. Reverted for now, and will be revised later

v2.8.4

When generating a new hook, the commands are now concatenated with && to ensure that the each command is only executed if the preceding one returns a success (0) status code

v2.8.2
  • Older versions of git did not understand the git rev-parse --git-common-dir used to resolve the git dir, so a fallback was introduced.
  • The --ignore-lock modification was fixed, so there should be no issues for newcomers to an existing project anymore.

Thanks to @devnix for pointing out these issues!

v2.8.0
  • git is now only invoked to resolve the git-dir if a --git-dir is not provided
  • --lock-dir was added which resolves to the current working directory if not provided
v2.7.0
  • Running cghooks in a git worktree now correctly resolves the .git folder.
  • cghooks is now aware of composer dev mode, and will not add or update hooks if run in production mode (--no-dev). This feature was REVERTED
v2.6.0

All commands (besides the hook test ones) gained the ability to manage hooks globally with the --global option. Like:

# Adds hooks in global directory (falls back to git config core.hooksPath and $COMPOSER_HOME)
cghooks add --global 
# You can also directly specify the directory
cghooks add --global --git-dir /home/brainmaestro/.config/git_hooks

The update, list-hooks and remove commands work similarly.

This change was non-trivial because the application assumed it was always being run in the current directory. Took the opportunity for some cleanup as well.

v2.5.0

For more complex hooks, they can be written as separate commands in an array. eg:

"pre-commit": [
    "echo committing as $(git config user.name)",
    "php-cs-fixer .",
    "phpunit"
]
v2.4.4

Files that are not necessary for the library are excluded with .gitattrributes

v2.4.2
v2.4.1
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.
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope