PHPackages                             bigtallbill/hooker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. bigtallbill/hooker

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

bigtallbill/hooker
==================

An extendable PHP commit hook

0.1.3(11y ago)3963[3 issues](https://github.com/bigtallbill/hooker/issues)proprietaryPHP

Since Oct 25Pushed 9y ago1 watchersCompare

[ Source](https://github.com/bigtallbill/hooker)[ Packagist](https://packagist.org/packages/bigtallbill/hooker)[ RSS](/packages/bigtallbill-hooker/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (7)Dependencies (3)Versions (8)Used By (0)

[![Build Status](https://camo.githubusercontent.com/8b0e6b48b744665da1b48b76711bd7322e3edf9e9f46beda7b65c8237e77f527/68747470733a2f2f7472617669732d63692e6f72672f62696774616c6c62696c6c2f686f6f6b65722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/bigtallbill/hooker)

[![Coverage Status](https://camo.githubusercontent.com/215c21606b11fde430e8b4ca617e848156a4609d3e783747471ed753bc8e995e/68747470733a2f2f696d672e736869656c64732e696f2f636f766572616c6c732f62696774616c6c62696c6c2f686f6f6b65722e737667)](https://coveralls.io/r/bigtallbill/hooker?branch=master)

[![codeship](https://camo.githubusercontent.com/557bf4b267f675e6cc9516e48932fe05c11bc42b37080c36d1769e353bdecfe1/68747470733a2f2f7777772e636f6465736869702e696f2f70726f6a656374732f36386266313233302d636139332d303133312d643139322d3565363865373335336138382f737461747573)](https://camo.githubusercontent.com/557bf4b267f675e6cc9516e48932fe05c11bc42b37080c36d1769e353bdecfe1/68747470733a2f2f7777772e636f6465736869702e696f2f70726f6a656374732f36386266313233302d636139332d303133312d643139322d3565363865373335336138382f737461747573)

hooker
======

[](#hooker)

An extendable php commit hook

Installation
------------

[](#installation)

1. Download binary
2. Copy the binary release to a directory that is loaded by your PATH
3. Make the file executable `chmod a+x hooker`
4. Check installation `which hooker`

Usage
-----

[](#usage)

1. open a terminal and cd to the target repository
2. run `hooker install`

This will install a hooker.json config file and also update the commit hook files for this repo to execute hooker

Now when you try to commit something for example. hooker will execute.

hooker.json Config
------------------

[](#hookerjson-config)

The hooker.json config file contains settings for each type of hook.

```
{
    "preCommit": {},
    "commitMsg": {
        "firstWordImperative": true,
        "maxSummaryLength": 50,
        "maxContentLength": 72,
        "summaryIgnoreUrls": true,
        "contentIgnoreUrls": true,
        "lineAfterSummaryMustBeBlank": true,
        "scripts": {
            "after": [
                {
                    "cmd": "runtests.sh",
                    "passGitArgs": false,
                    ""
                }
            ]
        }
    }
}

```

### "scripts"

[](#scripts)

Every hook type can have the element `scripts`. This allows you to execute arbitrary code that is not a native hooker check.

```
"scripts": {
    "after": [
        {
            "cmd": "runtests.sh"
        }
    ]
}

```

The "after" key defines when to run the script (currently after is the only one). After means run after hooker's own internal code for that hook.

Then we have an array of scripts to run.

Here is a sample script object:

```
{
    "cmd": "runtests.sh",
    "passGitArgs": false,
    "relativeToRepo": false
}

```

**"cmd"** is the command to execute

**"passGitArgs"** When set to true will append the git arguments onto the scripts existing arguments

**"relativeToRepo"** Execute this script relative to the repo. Currently this is pretty dumb, it will just prepend the repository path to the cmd.

### "commitMsg"

[](#commitmsg)

- **firstWordImperative** = Ensure that the first word in a commit message is imperative present-tense
- **maxSummaryLength** = The maximum length of the summary line
- **maxContentLength** = The maximum length of the message body
- **summaryIgnoreUrls** = Ignore length of lines with urls in (useful if you cant help the length of urls)
- **contentIgnoreUrls** = Ignore length of lines with urls in (useful if you cant help the length of urls)
- **lineAfterSummaryMustBeBlank** = Ensure that the line after the summary is blank

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Recently: every ~32 days

Total

7

Last Release

4090d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8caa9b48729c93df3849117fd3973e801748d871e786d53c7ff00c14c8563a43?d=identicon)[bigtallbill](/maintainers/bigtallbill)

---

Top Contributors

[![bigtallbill](https://avatars.githubusercontent.com/u/727370?v=4)](https://github.com/bigtallbill "bigtallbill (65 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bigtallbill-hooker/health.svg)

```
[![Health](https://phpackages.com/badges/bigtallbill-hooker/health.svg)](https://phpackages.com/packages/bigtallbill-hooker)
```

###  Alternatives

[coenjacobs/mozart

Composes all dependencies as a package inside a WordPress plugin

4723.6M20](/packages/coenjacobs-mozart)[php-soap/wsdl

Deals with WSDLs

173.5M12](/packages/php-soap-wsdl)[phel-lang/phel-lang

Phel is a functional programming language that compiles to PHP

4743.5k10](/packages/phel-lang-phel-lang)[symfony/ai-bundle

Integration bundle for Symfony AI components

30282.3k6](/packages/symfony-ai-bundle)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
