Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


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