contao-community-alliance / github-payload
Parse the github API payload from a webhook.
Requires
- php: >=5.3
- jms/serializer: ~0.0
Requires (Dev)
- phpmd/phpmd: ~2.0
- phpunit/phpunit: ~4.0
- squizlabs/php_codesniffer: ~1.0
- symfony/http-foundation: ~2.0
This package is not auto-updated.
Last update: 2022-02-01 12:39:16 UTC
README
![Stable Build Status](http://img.shields.io/travis/contao-community-alliance/github-payload/master.svg?style=flat-square&label=stable build) ![Upstream Build Status](http://img.shields.io/travis/contao-community-alliance/github-payload/develop.svg?style=flat-square&label=dev build)
github webhook payload
This project contains a set of classes to validate, deserialize and serialize the github webhook payload.
The parser use the jms/serializer
internally, that means you can deserialize and serialize the payload as you like.
Requirements
Annotations are used to define the serialisation settings. Depending on your environment, you may need to register
an annotation class loader. A very simple way is to register the class_exists
function as loader, if you have a
global autoloader available.
use Doctrine\Common\Annotations\AnnotationRegistry; AnnotationRegistry::registerLoader('class_exists');
Usage examples
... in plain php
<?php require 'vendor/autoload.php'; $parser = new ContaoCommunityAlliance\GithubPayload\GithubPayloadParser(); // if you have set a secret in the webhook, set it to the parser to validate the signature $parser->setSecret('...'); $event = $parser->parsePhp();
... in symfony / http-foundation
namespace MyBundle\Controller; class MyController { public function myAction(\Symfony\Component\HttpFoundation\Request $request) { $parser = new \ContaoCommunityAlliance\GithubPayload\GithubPayloadParser(); // if you have set a secret in the webhook, set it to the parser to validate the signature $parser->setSecret('...'); $event = $parser->parseRequest($request); } }
... in any other environment
$eventName = '...'; // The event name, usually the X-Github-Event header. $payload = '...'; // The github payload, usually the POST body. $signature = '...'; // The payload signature, usually the X-Hub-Signature header. $parser = new ContaoCommunityAlliance\GithubPayload\GithubPayloadParser(); // if you have set a secret in the webhook, set it to the parser to validate the signature $parser->setSecret('...'); $event = $parser->parse($eventName, $payload, $signature);