django-github-hook
django-github-hook copied to clipboard
Configurable post-receive webhook handler, implemented as a Django app
github_hook
Simple continuous integration for Django developers, taking the form of a Django app for managing GitHub (or BitBucket) post receive hooks.
.. image:: https://img.shields.io/travis/sheppard/django-github-hook.svg :target: https://travis-ci.org/sheppard/django-github-hook .. image:: https://img.shields.io/pypi/v/django-github-hook.svg :target: https://pypi.python.org/pypi/django-github-hook
Tested on Python 2.7, 3.4 and 3.5, with Django 1.8 and 1.9.
Usage
-
pip install django-github-hook -
Add
github_hooktoINSTALLED_APPSin your settings.py -
./manage.py migrate(or./manage.py syncdb) -
Add e.g.
url(r'^hook/', include('github_hook.urls'))to your urls.pyurlpatterns -
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 WebHook/POST URL:
- http[s]://[yourwebsite]/hook
- The repo information will be read from the JSON payload
-
Alternatively, you can specify a specific hook by name:
- http[s]://[yourwebsite]/hook/name
Examples
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.
.. code-block:: python
from github_hook.models import hook_signal
def processWebhook(sender, **kwargs):
for key, value in kwargs.iteritems():
print key, value
hook_signal.connect(processWebhook)