From 084203f0cf15bdd77dae0373535c1a9ae221b935 Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Mon, 1 Dec 2014 15:48:22 +0000 Subject: [PATCH] Adding support for Github Content-Type: application/json web hooks. See #668 --- PHPCI/Controller/WebhookController.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/PHPCI/Controller/WebhookController.php b/PHPCI/Controller/WebhookController.php index 4884edf9..fb3a76d7 100644 --- a/PHPCI/Controller/WebhookController.php +++ b/PHPCI/Controller/WebhookController.php @@ -52,11 +52,23 @@ class WebhookController extends \PHPCI\Controller */ public function bitbucket($project) { - $payload = json_decode($this->getParam('payload'), true); + switch ($_SERVER['CONTENT_TYPE']) { + case 'application/json': + $payload = json_decode(file_get_contents('php://input'), true); + break; + + case 'application/x-www-form-urlencoded': + $payload = json_decode($this->getParam('payload'), true); + break; + + default: + header('HTTP/1.1 400 Bad Request'); + die('Request content type not supported'); + } + foreach ($payload['commits'] as $commit) { try { - $email = $commit['raw_author']; $email = substr($email, 0, strpos($email, '>')); $email = substr($email, strpos($email, '<') + 1);