NAME
   GitHub::WebHook - Collection of GitHub WebHook handlers

SYNOPSIS
   Create new webhook handler (or use one of the existing "MODULES"):

       package GitHub::WebHook::Example;
       use parent 'GitHub::WebHook';
       sub call {
           my ($payload, $event, $id, $logger) = @_;
           ...
           $logger->{info}->("processing some $event with $id");
           1; # success
       }

   Build a receiver script with Plack::App::GitHub::WebHook:

       use Plack::App::GitHub::WebHook;
       Plack::App::GitHub::WebHook->new( hook => 'Example' )->to_app;

DESCRIPTION
   GitHub::Webhook provides handlers that receive webhooks in GitHub
   WebHooks <http://developer.github.com/webhooks/> format or similar
   forms.

   The module can be used with Plack::App::GitHub::WebHook to create
   webhook receiver scripts, but it can also be used independently.

   A Perl module in the GitHub::WebHook namespace is expected to implement
   a method named "call" which is called with the following parameters:

   payload
       The encoded webhook payload

   event
       The type of webhook event
       <https://developer.github.com/webhooks/#events> e.g. "pull"

   id  A unique delivery ID

   logger
       A logger object as (possibly blessed) HASH reference with properties
       "debug", "info", "warn", "error", "fatal", each being a CODE
       reference to send log messages to.

MODULES
   GitHub::WebHook::Run
       run a subprocess

   GitHub::WebHook::Clone
       clone/pull from a git repository

COPYRIGHT AND LICENSE
   Copyright Jakob Voss, 2015-

   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.