The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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