com web/master: Try to make PR mails less spammy: github-webhook.php

From: Date: Tue, 15 Nov 2016 20:45:13 +0000
Subject: com web/master: Try to make PR mails less spammy: github-webhook.php
Groups: php.webmaster 
Request: Send a blank email to php-webmaster+get-25324@lists.php.net to get a copy of this message
Commit: 2320705c2bcedccf694c8e88eb3e6c1a7bb247f6 Author: Nikita Popov <nikic@php.net> Tue, 15 Nov 2016 21:45:13 +0100 Parents: 4611f79bd1cb18e53ee1fd55e541e2999a5d6d00 Branches: master Link: http://git.php.net/?p=web/master.git;a=commitdiff;h=2320705c2bcedccf694c8e88eb3e6c1a7bb247f6 Log: Try to make PR mails less spammy Changed paths: M github-webhook.php Diff: diff --git a/github-webhook.php b/github-webhook.php index 2a5b08c..7578916 100644 --- a/github-webhook.php +++ b/github-webhook.php @@ -51,25 +51,44 @@ if (!verify_signature($body)) { } $payload = json_decode($body); +$action = $payload->action; $PR = $payload->pull_request; $htmlUrl = $PR->html_url; $repoName = $PR->base->repo->name; -$description = $PR->body; -switch ($_SERVER['HTTP_X_GITHUB_EVENT']) { +switch ($_SERVER['HTTP_X_GITHUB_EVENT']) { case 'ping': break; case 'pull_request': - $mergeable = $PR->mergeable; + $description = $PR->body; + $username = $PR->user->login; $to = get_repo_email($CONFIG["repos"], $repoName); $subject = prep_title($PR, $PR->base); $message = sprintf("You can view the Pull Request on github:\r\n%s", $htmlUrl); - if ($mergeable === false) { - $message .= "\r\n\r\nWarning: according to github, the Pull Request cannot be merged without manual conflict resolution!"; - } - $message .= sprintf("\r\n\r\nPull Request Description:\r\n%s", $description); + switch ($action) { + case 'opened': + $message .= sprintf( + "\r\n\r\nOpened By: %s\r\nPull Request Description:\r\n%s", + $username, $description); + break; + case 'closed': + $message .= "\r\n\r\nClosed."; + break; + case 'reopened': + $message .= "\r\n\r\nReopened."; + break; + case 'assigned': + case 'unassigned': + case 'labeled': + case 'unlabeled': + case 'edited': + case 'synchronize': + // Ignore these actions + break 2; + } + $headers = "From: noreply@php.net\r\nContent-Type: text/plain; charset=utf-8\r\n"; mail($to, '=?utf-8?B?'.base64_encode($subject).'?=', $message, $headers, "-fnoreply@php.net"); break; @@ -81,8 +100,15 @@ switch ($_SERVER['HTTP_X_GITHUB_EVENT']) { $to = get_repo_email($CONFIG["repos"], $repoName); $subject = prep_title($PR, $PR->base); $message = sprintf("You can view the Pull Request on github:\r\n%s", $htmlUrl); - $message .= sprintf("\r\n\r\nPull Request Comment:\r\n%s", $comment); - $message .= sprintf("\r\nMade by: %s", $username); + switch ($action) { + case 'created': + $message .= sprintf("\r\n\r\nComment by %s:\r\n%s", $username, $comment); + break; + case 'edited': + case 'deleted': + // Ignore these actions + break 2; + } $headers = "From: noreply@php.net\r\nContent-Type: text/plain; charset=utf-8\r\n"; mail($to, '=?utf-8?B?'.base64_encode($subject).'?=', $message, $headers, "-fnoreply@php.net");

« previous php.webmaster (#25324) next »