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.