diff --git a/src/applications/audit/mail/PhabricatorAuditReplyHandler.php b/src/applications/audit/mail/PhabricatorAuditReplyHandler.php --- a/src/applications/audit/mail/PhabricatorAuditReplyHandler.php +++ b/src/applications/audit/mail/PhabricatorAuditReplyHandler.php @@ -33,19 +33,31 @@ protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) { $commit = $this->getMailReceiver(); $actor = $this->getActor(); + $message = $mail->getCleanTextBody(); - // TODO: Support !raise, !accept, etc. - // TODO: Content sources. + $content_source = PhabricatorContentSource::newForSource( + PhabricatorContentSource::SOURCE_EMAIL, + array( + 'id' => $mail->getID(), + )); - $comment = id(new PhabricatorAuditComment()) - ->setAction(PhabricatorAuditActionConstants::COMMENT) - ->setContent($mail->getCleanTextBody()); + // TODO: Support !raise, !accept, etc. - $editor = new PhabricatorAuditCommentEditor($commit); - $editor->setActor($actor); - $editor->setExcludeMailRecipientPHIDs( - $this->getExcludeMailRecipientPHIDs()); - $editor->addComments(array($comment)); + $xactions = array(); + + $xactions[] = id(new PhabricatorAuditTransaction()) + ->setTransactionType(PhabricatorTransactions::TYPE_COMMENT) + ->attachComment( + id(new PhabricatorAuditTransactionComment()) + ->setCommitPHID($commit->getPHID()) + ->setContent($message)); + + $editor = id(new PhabricatorAuditEditor($commit)) + ->setActor($actor) + ->setContentSource($content_source) + ->setExcludeMailRecipientPHIDs($this->getExcludeMailRecipientPHIDs()) + ->setContinueOnMissingFields(true) + ->applyTransactions($commit, $xactions); } }