diff --git a/src/applications/differential/mail/comment/DifferentialCommentMail.php b/src/applications/differential/mail/comment/DifferentialCommentMail.php index 060264b166..fb5695dee0 100644 --- a/src/applications/differential/mail/comment/DifferentialCommentMail.php +++ b/src/applications/differential/mail/comment/DifferentialCommentMail.php @@ -71,6 +71,32 @@ class DifferentialCommentMail extends DifferentialMail { $body = array(); $body[] = "{$actor} has {$verb} the revision \"{$name}\"."; + + // If the commented added reviewers or CCs, list them explicitly. + $meta = $comment->getMetadata(); + $m_reviewers = idx( + $meta, + DifferentialComment::METADATA_ADDED_REVIEWERS, + array()); + $m_cc = idx( + $meta, + DifferentialComment::METADATA_ADDED_CCS, + array()); + $load = array_merge($m_reviewers, $m_cc); + if ($load) { + $handles = id(new PhabricatorObjectHandleData($load))->loadHandles(); + if ($m_reviewers) { + $body[] = 'Added Reviewers: '.$this->renderHandleList( + $handles, + $m_reviewers); + } + if ($m_cc) { + $body[] = 'Added CCs: '.$this->renderHandleList( + $handles, + $m_cc); + } + } + $body[] = null; $content = $comment->getContent(); @@ -134,4 +160,12 @@ class DifferentialCommentMail extends DifferentialMail { return implode("\n", $body); } + + private function renderHandleList(array $handles, array $phids) { + $names = array(); + foreach ($phids as $phid) { + $names[] = $handles[$phid]->getName(); + } + return implode(', ', $names); + } } diff --git a/src/applications/differential/mail/comment/__init__.php b/src/applications/differential/mail/comment/__init__.php index f6f1281398..51b6e24688 100644 --- a/src/applications/differential/mail/comment/__init__.php +++ b/src/applications/differential/mail/comment/__init__.php @@ -9,6 +9,7 @@ phutil_require_module('phabricator', 'applications/differential/constants/action'); phutil_require_module('phabricator', 'applications/differential/constants/revisionstatus'); phutil_require_module('phabricator', 'applications/differential/mail/base'); +phutil_require_module('phabricator', 'applications/differential/storage/comment'); phutil_require_module('phabricator', 'applications/phid/handle/data'); phutil_require_module('phabricator', 'infrastructure/env');