Author: Nikita Popov (nikic)
Date: 2021-12-05T16:09:56+01:00

Commit: 
https://github.com/php/web-master/commit/be788e68aec645a51c158f553257a82e1cc9f9ef
Raw diff: 
https://github.com/php/web-master/commit/be788e68aec645a51c158f553257a82e1cc9f9ef.diff

Specify separate issue mailing list for php-src

And do some formatting tweaks

Changed paths:
  M  public/github-webhook.php


Diff:

diff --git a/public/github-webhook.php b/public/github-webhook.php
index 2e217d9..85eb594 100644
--- a/public/github-webhook.php
+++ b/public/github-webhook.php
@@ -15,28 +15,16 @@ function verify_signature($requestBody) {
     return false;
 }
 
-function get_repo_email($repos, $repoName) {
-    // if we somehow end up receiving a PR for a repo not matching anything 
send it to systems so that we can fix it
-    $to = 'syst...@php.net';
-    foreach ($repos as $repoPrefix => $email) {
-        if (strpos($repoName, $repoPrefix) === 0) {
-            $to = $email;
-        }
-    }
-
-    return $to;
-}
-
 function is_pr($issue) {
     return strpos($issue->html_url, '/pull/') !== false;
 }
 
-function prep_title($issue, $repoName) {
+function prep_title(object $issue, string $repoName): string {
     $issueNumber = $issue->number;
     $title = $issue->title;
     $type = is_pr($issue) ? 'PR' : 'Issue';
 
-    return sprintf('[%s][%s #%s] - %s', $repoName, $type, $issueNumber, 
$title);
+    return sprintf('[%s] %s #%s: %s', $repoName, $type, $issueNumber, $title);
 }
 
 function send_mail($to, $subject, $message, MailAddress $from, array $replyTos 
= []) {
@@ -135,6 +123,24 @@ function get_commit_mailing_list($repoName) {
     }
 }
 
+function get_issue_mailing_list(string $repoName, bool $isPR) {
+    if ($repoName === 'playground') {
+        return 'ni...@php.net';
+    } else if ($repoName === 'php-src') {
+        if ($isPR) {
+            return 'git-pu...@lists.php.net';
+        } else {
+            return 'php-b...@lists.php.net';
+        }
+    } else if (strpos($repoName, 'web-') === 0) {
+        return 'php-webmaster@lists.php.net';
+    } else if (strpos($repoName, 'pecl-') === 0) {
+        return 'pecl-...@lists.php.net';
+    } else {
+        return null;
+    }
+}
+
 function parse_ref($ref) {
     if (!preg_match('(^refs/([^/]+)/(.+)$)', $ref, $matches)) {
         return null;
@@ -303,16 +309,6 @@ function handle_push_mail($payload) {
     }
 }
 
-$CONFIG = [
-    'repos' => [
-        'php-langspec' => 'standa...@lists.php.net',
-        'php-src' => 'git-pu...@lists.php.net',
-        'web-' => 'php-webmaster@lists.php.net',
-        'pecl-' => 'pecl-...@lists.php.net',
-        'playground' => 'ni...@php.net',
-    ],
-];
-
 if (DRY_RUN) {
     $body = file_get_contents("php://stdin");
     $event = $argv[1];
@@ -347,11 +343,12 @@ function handle_push_mail($payload) {
         $description = $issue->body;
         $username = $issue->user->login;
 
-        $to = get_repo_email($CONFIG["repos"], $repoName);
+        $isPR = is_pr($issue);
+        $to = get_issue_mailing_list($repoName, $isPR);
         $subject = prep_title($issue, $repoName);
-        $type = is_pr($issue) ? 'Pull Request' : 'Issue';
+        $type = $isPR ? 'Pull Request' : 'Issue';
 
-        $message = sprintf("You can view the %s on github:\r\n%s", $type, 
$htmlUrl);
+        $message = sprintf("%s: %s", $type, $htmlUrl);
         switch ($action) {
             case 'opened':
                 $message .= sprintf(
@@ -388,11 +385,12 @@ function handle_push_mail($payload) {
         $username = $payload->comment->user->login;
         $comment = $payload->comment->body;
 
-        $to = get_repo_email($CONFIG["repos"], $repoName);
+        $isPR = is_pr($issue);
+        $to = get_issue_mailing_list($repoName, $isPR);
         $subject = prep_title($issue, $repoName);
-        $type = is_pr($issue) ? 'Pull Request' : 'Issue';
+        $type = $isPR ? 'Pull Request' : 'Issue';
 
-        $message = sprintf("You can view the %s on github:\r\n%s", $type, 
$htmlUrl);
+        $message = sprintf("%s: %s", $type, $htmlUrl);
         switch ($action) {
             case 'created':
                 $message .= sprintf("\r\n\r\nComment by %s:\r\n%s", $username, 
$comment);

-- 
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to