Why use the Cap'n

Git hooks are a great way for automating tasks, enforcing coding standards, and performing actions before or after Git commands are executed. Here are some reasons why you might use git hooks:

The Cap'n is designed to simplify the process of sharing git hooks within your team. Whether you already use git hooks or you are starting from scratch the Cap'n got you covered. The Cap'n makes it equally easy to integrate existing hook scripts or create custom hooks from scratch. With the Cap'n, you have the flexibility to listen to all git hook events or selectively target the ones that matter most to your workflow. While it offers a rich set of features, the primary mission of the Cap'n is to streamline the integration of your unique functionalities, making the entire process as straightforward as possible.

To better understand the Captain's capabilities you can have a look at the Captain's favorite hooks.

Comparing the Cap'n to other solutions

While there are certainly other fantastic tools available, like GrumPHP and Whiskey, CaptainHook distinguishes itself by providing a large set of advanced features that empower you to implement even more sophisticated automations. While GrumPHP and Whiskey are excellent choices for many Git hook-related tasks, the Cap'n takes it a step further by offering a wider array of options and configurations. This makes it the preferred choice when you need to tackle complex automation scenarios that demand a higher level of customization and control over your Git workflow.

Here's a list of examples demonstrating what you can achieve with the Cap'n

Feature comparison

CaptainHook GrumPHP Whiskey
PHAR installation via PHIVE
Check commit messages
Integrate your existing hooks easily
Supports the git-notify standard
Allow access to original hook arguments and input
Conditional hook execution to only run hooks when needed
Extensive PHP hook api to build you own hook packages
Can execute shell commands & PHP classes
Include custom hook package configurations
Handle all hooks
Allow different settings for the team and individuals (e.g. shell vs. docker)
Supports virtual hooks to prevent copy paste configuration
Docker support out of the box
Will not overwrite your stuff without asking

by October 2023