Django-powered GitHub (& Bitbucket) web hooks
Simple continuous integration for Django developers, taking the form of a Django app for managing GitHub (or BitBucket) post receive hooks.
Tested on Python 2.7, 3.4 and 3.5, with Django 1.8 and 1.9.
- pip install django-github-hook
- Add github_hook to INSTALLED_APPS in your settings.py
- ./manage.py migrate (or ./manage.py syncdb)
- Add e.g. url(r'^hook/', include('github_hook.urls')) to your urls.py urlpatterns
- Log into the Django admin console
- Configure your hook with the folowing fields:
- Name: Hook identifier
- User: Repo username
- Repo: Repo name
- Path: Absolute path to script to execute
- Go to your repo’s “Service Hooks” settings on GitHub (or BitBucket) and add a
- The repo information will be read from the JSON payload
- Alternatively, you can specify a specific hook by name:
The following snippet show how to connect the webhook to a method using django’s signal mechanism. Note that path must be set to “send-signal” in the hook object instead of an absolute path to a script.
from github_hook.models import hook_signal def processWebhook(sender, **kwargs): for key, value in kwargs.iteritems(): print key, value hook_signal.connect(processWebhook)