<?php include('config.php'); // check for POST request if ($_SERVER['REQUEST_METHOD'] != 'POST') { error_log('FAILED - not POST - '. $_SERVER['REQUEST_METHOD']); exit(); } // get content type $content_type = isset($_SERVER['CONTENT_TYPE']) ? strtolower(trim($_SERVER['CONTENT_TYPE'])) : ''; if ($content_type != 'application/json') { error_log('FAILED - not application/json - '. $content_type); exit(); } // get payload $payload = trim(file_get_contents("php://input")); if (empty($payload)) { error_log('FAILED - no payload'); exit(); } // convert json to array $decoded = json_decode($payload, true); // check for json decode errors if (json_last_error() !== JSON_ERROR_NONE) { error_log('FAILED - json decode - '. json_last_error()); exit(); } if($decoded['secret'] != $secret_key['pr']) { echo("WRONG SECRET"); error_log('FAILED - wrong secret key'); exit(); } file_put_contents("log.txt", print_r($decoded, true)); $subject = "Pull request: " . $decoded['pull_request']['title'] . " by " . $decoded['pull_request']['user']['login']; $message = $decoded['sender']['login'] . " has " . ($decoded['pull_request']['merged'] ? "merged" : $decoded['action']) . " pull request #" . $decoded['pull_request']['number'] . " for " . $decoded['repository']['full_name'] . ".\n" . $decoded['pull_request']['html_url']; foreach($recipients['pr'] as $recp) { mail($recp, $subject, $message, $from); } echo("SENT"); // success, do something ?>