Servant combinators to facilitate writing GitHub webhooks.

Latest on Hackage:

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

MIT licensed by Jacob Thomas Errington

Build Status


This library facilitates writing Servant routes that can safely act as GitHub webhooks.


  • Dispatching to routes based on the type of repository event.
  • Automatic verification of request signatures.

See the documentation for more details about how the library works, and how to use it.


  • servant-client and servant-docs instances.
  • Tests.


Revision history for servant-github-webhook -- 2016-09-22

  • Pass reflected key index to the handler function for GitHubSignedReqBody. This allows for more generic handler functions, as they can determine programmatically which repository they are responding to. -- 2016-09-13

  • Improve documentation (formatting and typos) and examples (remove unnecessary verbosity). -- 2016-09-11

  • Generalize GitHubSignedReqBody combinator to GitHubSignedReqBody'' to allow for configuring multiple signing keys, on a per-route basis.
  • Make GitHubKey take a function instead of simply an IO action.
  • Reexport KProxy, to make writing Demote' instances easier. -- 2016-09-10

Initial release.

  • Implement GitHubSignedReqBody combinator for automatic signature verification during routing.
  • Implement GitHubEvent combinator for dispatching to routes based on the webhook type.
  • Known issue: only one global GitHubKey can be used across all routes.
comments powered byDisqus