Git post-receive hook
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Build Status

Git post-receive hook to send GitHub PushEvent-formatted requests

Note, some github-specific payload fields are missing. The exact payload format can be found in

See releases for binaries, or build from source (see Releases section below). If you've installed a pre-compiled binary, you can update to the latest release via notify-hook self update.

Sidenote: This is a rewrite of the python utility notify-webhook

Configuration Options

Note: options are set (from within the git project) with:

git config notifyhook.hook-urls ","


Repository name to use. Defaults to blank


Repository description to use. Defaults to blank


Repository owner name to use. Defaults to blank


Repository owner email to use. Defaults to blank


Comma separated list of urls to post content to.


Optional: Hex encoded secret token used to generate a GitHub X-Hub-Signature header.


Content type to send payload as. Defaults to urlencoded.


  • urlencoded: (Default) Post as application/x-www-form-urlencoded
  • json: Post as application/json


  • Install rust
  • cargo build
  • echo "6b1bc10c d7b4c1baba master" | cargo run -- --debug


Statically compiled releases are built by travis-ci with --features update to allow notify-hook self update. If you want to fork this project and continue building/self-updating with your github releases, you'll need to enable the notify-hook repository in your travis-ci account and then update the update function to point to your forked github repository.

If you prefer to build locally, there are two options:

  1. If your build and target architectures are identical, you can get away with a simple cargo build --release. Note, this requires libssl-dev to be installed in your build environment, and openssl installed on your target.
  2. If you want to build static releases, like those built by travis-ci, you can use the script. This script requires docker and cross to be installed to produce statically compiled binaries. By default, artifacts will be produced for i686 and x86_64. This can be tweaked in the TARGETS list of
    • Install docker
      • Add yourself to the docker group: sudo usermod -a -G docker <user>
      • Restart to pick up changes (logging in & out may suffice)
      • You should be able to run docker version without any errors
      • May need to start the Docker daemon if it's not already running: sudo systemctl start docker
    • Install cross: cargo install cross
    • ./
      • Release artifacts (i686 & x86_64) will be copied into bin/32 & bin/64