jadb/monohook

Fully configurable and extendable VCS hook manager

dev-master 2015-01-13 17:15 UTC

This package is auto-updated.

Last update: 2024-03-28 00:01:00 UTC


README

A re-visited approach to Git hooks - and probably other like Mercurial or Subversion?

Install

Monohook can be installed using Composer:

composer require --dev jadb/monohook:dev-master

Usage

Now that you have the package installed, you just need to create your hooks and symlink them to the .monohook config you create.

To create your .monohook, please refer to the one used for this repository.

Now, symlink the hooks you want managed by monohook:

$ ln -s ../../.monohook .git/hooks/pre-commit
$ ln -s ../../.monohook .git/hooks/post-commit
$ ln -s ../../.monohook .git/hooks/pre-rebase

What's included?

Processors

  • CodeSnifferProcessor: Detect violations of a defined set of coding standards in PHP and CSS.
  • LintProcessor: Syntax check every new PHP file.
  • PHPUnitProcessor: Test (when possible) every new PHP file.
  • RebaseProcessor: Make sure that a rebase does not overwrite already pushed commits.
  • TODO ContentFilterProcessor: Check any new code for filterable content (debug, wording, etc.).
  • TODO ImageOptimizerProcessor: Reduce images' sizes.

Providers

  • GitProvider
  • TODO MercurialProvider
  • TODO SubversionProvider

Handlers

  • StdoutHandler
  • TODO EmailHandler
  • TODO StreamHandler

Contributing

  • Fork
  • Mod, fix, test
  • Optionally write some documentation (currently in README.md)
  • Send pull request

All contributed code must be licensed under the BSD 3-Clause License.

Bugs & Feedback

http://github.com/jadb/monohook/issues

License

Copyright (c) 2015, Jad Bitar

Licensed under the BSD 3-Clause License Redistributions of files must retain the above copyright notice.

Acknowledgements

Originally inspired by AD7six/git-hooks and Seldaek/monolog.