This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

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 “run.py” 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:

http://host:port/hook/HOOK-NAME

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:

http://host:port/

Warning

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.

Development

Get virtual environment and install dependencies:

make deps

Run the tests:

make test

Run the server:

make run

TODO

  • 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

Thanks

This project is standing on the shoulders of giants:

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

Release History

This version
History Node

0.3.0

History Node

0.2.3

History Node

0.2.2

History Node

0.2.1

History Node

0.2.0

History Node

0.1.9

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
txghserf-0.3.0.tar.gz (18.3 kB) Copy SHA256 Checksum SHA256 Source Mar 6, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting