Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status Coverage Status Kwalitee status CPAN version

Packaging status

An easy to use module for writing CGI-based Github webhook backends in Perl.

In most cases three statements already suffice. Configure a script to trigger, a shared secret and a log file and you're ready to go.

It also supports updating status badges depending on the trigger script's return code (or fork success/fail).



use CGI::Github::Webhook;

my $ghwh = CGI::Github::Webhook->new(
    mime_type => 'text/plain',
    trigger => '/srv/some-github-project/bin/',
    trigger_backgrounded => 1,
    secret => 'use a generated password here, nothing valuable',
    log => '/srv/some-github-project/log/deployment.log',
    badge_to => '/srv/some-github-project/htdocs/status.svg',


The module has been written over the frustration of not getting GitHub::WebHook to work together with

It's first incarnation has been written as single CGI script powering a webhook for the Debian Package Management Book to trigger builds of the e-book variants and their deployment upon every push.

Author, License and Copyright

Copyright 2016 Axel Beckert

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation, either version 1, or (at your option) any later version; or the Artistic License.

See for more information.

The badges in the static-badges directory are licensed under the CC0 Public Domain Dedication and not copyrighted.