Skip to main content

Simple server to listen for GitHub repo hooks.

Project description

A picture is worth a thousand words:

This is just a boilerplate for implementing a GitHub Service Hooks server based on Klein and Twisted.

Implement your on “” and start it like:

twistd -n web --class=run.resource

It will parse incoming hooks and return an ‘Event’ containing hook name, event name and JSON payload.

Configure GitHub Hooks using:


HOOK-NAME is just a random string to track the source of the hook or implement multiple hooks on the same server.

It also include a simple web tool to register hooks or check hook status. Login using GitHub credentials:



The JS gui will work fine from localhost, since GitHub API accept all localhost origins. To allow the JS gui to connect to GitHub from a public server, you will need to register the server address as on GitHub OAuth application.


Get virtual environment and install dependencies:

make deps

Run the tests:

make test

Run the server:

make run


  • Add ssl security check instead of IP filter.
  • Add proper pagination for GitHub API… not it just request 1000 entries.
  • Add configuration and checking of secret


This project is standing on the shoulders of giants:

  • Twisted Matrix
  • Klein
  • AngularJS
  • AngujarJS-UI Bootstrap

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

txghserf-0.3.0.tar.gz (18.3 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page