com web/bugs: Fix #64249: Bug tracker doesn't send notifies on adding of pull requests: www/gh-pull-add.php
| From: | Peter Kokot | Date: | Tue, 21 May 2019 23:19:34 +0000 |
| Subject: | com web/bugs: Fix #64249: Bug tracker doesn't send notifies on adding of pull requests: www/gh-pull-add.php | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-28055@lists.php.net to get a copy of this message | ||
Commit: 353abb3d0bbec66f5f4d76f29dd6717d7babb5a9
Author: Peter Kokot <peterkokot@gmail.com> Wed, 22 May 2019 01:19:34 +0200
Parents: 3c344392bdbb711da6c6cbc0611fe4fbc19f1599
Branches: master
Link: http://git.php.net/?p=web/bugs.git;a=commitdiff;h=353abb3d0bbec66f5f4d76f29dd6717d7babb5a9
Log:
Fix #64249: Bug tracker doesn't send notifies on adding of pull requests
This now sends also notification about GitHub pull request being
attached to a bug report.
Bugs:
https://bugs.php.net/64249
Changed paths:
M www/gh-pull-add.php
Diff:
diff --git a/www/gh-pull-add.php b/www/gh-pull-add.php
index 3f1d91a..4dac961 100644
--- a/www/gh-pull-add.php
+++ b/www/gh-pull-add.php
@@ -17,107 +17,107 @@ bugs_authenticate($user, $pw, $logged_in, $user_flags);
/// Input vars
$bug_id = !empty($_REQUEST['bug']) ? (int) $_REQUEST['bug'] : 0;
if (empty($bug_id)) {
- $bug_id = !empty($_REQUEST['bug_id']) ? (int) $_REQUEST['bug_id'] : 0;
+ $bug_id = !empty($_REQUEST['bug_id']) ? (int) $_REQUEST['bug_id'] : 0;
}
if (empty($bug_id)) {
- response_header('Error :: no bug selected');
- display_bug_error('No bug selected to add a patch to (no bug or bug_id!)');
- response_footer();
- exit;
+ response_header('Error :: no bug selected');
+ display_bug_error('No bug selected to add a patch to (no bug or bug_id!)');
+ response_footer();
+ exit;
}
$bugRepository = $container->get(BugRepository::class);
if (!($buginfo = $bugRepository->findOneById($bug_id))) {
- response_header('Error :: invalid bug selected');
- display_bug_error("Invalid bug #{$bug_id} selected");
- response_footer();
- exit;
+ response_header('Error :: invalid bug selected');
+ display_bug_error("Invalid bug #{$bug_id} selected");
+ response_footer();
+ exit;
}
$package_name = $buginfo['package_name'];
// captcha is not necessary if the user is logged in
if (!$logged_in) {
- $captcha = $container->get(Captcha::class);
+ $captcha = $container->get(Captcha::class);
}
$show_bug_info = bugs_has_access($bug_id, $buginfo, $pw, $user_flags);
if (!$show_bug_info) {
- response_header('Private report');
- display_bug_error("The bug #{$bug_id} is not available to public");
- response_footer();
- exit;
+ response_header('Private report');
+ display_bug_error("The bug #{$bug_id} is not available to public");
+ response_footer();
+ exit;
}
$pullinfo = $container->get(GitHub::class);
$pullRequestRepository = $container->get(PullRequestRepository::class);
if (isset($_POST['addpull'])) {
- $errors = [];
- if (empty($_POST['repository'])) {
- $errors[] = 'No repository selected';
- }
- if (empty($_POST['pull_id'])) {
- $errors[] = 'No Pull request selected';
- }
-
- if (!$logged_in) {
- try {
- $email = isset($_POST['email']) ? $_POST['email'] : '';
-
- if (!is_valid_email($email, $logged_in)) {
- $errors[] = 'Email address must be valid!';
- }
-
- /**
- * Check if session answer is set, then compare
- * it with the post captcha value. If it's not
- * the same, then it's an incorrect password.
- */
- if (!isset($_SESSION['answer']) || $_POST['captcha'] !=
$_SESSION['answer']) {
- $errors[] = 'Incorrect Captcha';
- }
-
- if (count($errors)) {
- throw new Exception('');
- }
-
- } catch (Exception $e) {
- $pulls = $pullRequestRepository->findAllByBugId($bug_id);
- include "{$ROOT_DIR}/templates/addghpull.php";
- exit;
- }
- } else {
- $email = $auth_user->email;
- }
-
- if (!count($errors)) {
- try {
- $newpr = $pullinfo->attach($bug_id, $_POST['repository'],
$_POST['pull_id'], $email);
- } catch(\Exception $e) {
- $errors = ['Could not attach pull request to Bug #'.$bug_id];
-
- if ($e->errorInfo[1] === 1062) {
- $errors[] = 'This pull request is already added.';
- }
-
- if ('dev' === $container->get('env')) {
- $errors[] = $e->getMessage();
- }
- }
- }
-
- if (count($errors)) {
- $pulls = $pullRequestRepository->findAllByBugId($bug_id);
- include "{$ROOT_DIR}/templates/addghpull.php";
- exit;
- }
-
- // Add a comment to the bug report.
- $text = <<<TXT
+ $errors = [];
+ if (empty($_POST['repository'])) {
+ $errors[] = 'No repository selected';
+ }
+ if (empty($_POST['pull_id'])) {
+ $errors[] = 'No Pull request selected';
+ }
+
+ if (!$logged_in) {
+ try {
+ $email = isset($_POST['email']) ? $_POST['email'] : '';
+
+ if (!is_valid_email($email, $logged_in)) {
+ $errors[] = 'Email address must be valid!';
+ }
+
+ /**
+ * Check if session answer is set, then compare
+ * it with the post captcha value. If it's not
+ * the same, then it's an incorrect password.
+ */
+ if (!isset($_SESSION['answer']) || $_POST['captcha'] !=
$_SESSION['answer']) {
+ $errors[] = 'Incorrect Captcha';
+ }
+
+ if (count($errors)) {
+ throw new Exception('');
+ }
+
+ } catch (Exception $e) {
+ $pulls = $pullRequestRepository->findAllByBugId($bug_id);
+ include "{$ROOT_DIR}/templates/addghpull.php";
+ exit;
+ }
+ } else {
+ $email = $auth_user->email;
+ }
+
+ if (!count($errors)) {
+ try {
+ $newpr = $pullinfo->attach($bug_id, $_POST['repository'],
$_POST['pull_id'], $email);
+ } catch(\Exception $e) {
+ $errors = ['Could not attach pull request to Bug #'.$bug_id];
+
+ if ($e->errorInfo[1] === 1062) {
+ $errors[] = 'This pull request is already added.';
+ }
+
+ if ('dev' === $container->get('env')) {
+ $errors[] = $e->getMessage();
+ }
+ }
+ }
+
+ if (count($errors)) {
+ $pulls = $pullRequestRepository->findAllByBugId($bug_id);
+ include "{$ROOT_DIR}/templates/addghpull.php";
+ exit;
+ }
+
+ // Add a comment to the bug report.
+ $text = <<<TXT
The following pull request has been associated:
Patch Name: {$newpr->title}
@@ -125,16 +125,15 @@ On GitHub: {$newpr->html_url}
Patch: {$newpr->patch_url}
TXT;
- $res = bugs_add_comment($bug_id, $auth_user->email, $auth_user->name, $text,
'patch');
+ $res = bugs_add_comment($bug_id, $email, $auth_user->name, $text, 'patch');
- // Send emails
- // TODO: enable also mailing
- //mail_bug_updates($buginfo, $buginfo, $auth_user->email, $text, 4, $bug_id);
+ // Send emails
+ mail_bug_updates($buginfo, $buginfo, $email, $text, 4, $bug_id);
- $pulls = $pullRequestRepository->findAllByBugId($bug_id);
- $errors = [];
- include "{$ROOT_DIR}/templates/addghpull.php";
- exit;
+ $pulls = $pullRequestRepository->findAllByBugId($bug_id);
+ $errors = [];
+ include "{$ROOT_DIR}/templates/addghpull.php";
+ exit;
}
$email = isset($_GET['email']) ? $_GET['email'] : '';