Skip to content

Configurable post-receive webhook handler, implemented as a Django app

License

Notifications You must be signed in to change notification settings

sheppard/django-github-hook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Mar 29, 2017
6b1b232 · Mar 29, 2017

History

43 Commits
Mar 29, 2017
Mar 29, 2017
Nov 16, 2013
Mar 29, 2017
Mar 29, 2017
May 12, 2016
Mar 29, 2017
Mar 29, 2017

Repository files navigation

github_hook

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.

Usage

  • 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 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.

from github_hook.models import hook_signal

def processWebhook(sender, **kwargs):
        for key, value in kwargs.iteritems():
                print key, value

hook_signal.connect(processWebhook)