diff --git a/src/applications/repository/storage/PhabricatorRepositoryCommit.php b/src/applications/repository/storage/PhabricatorRepositoryCommit.php index 6b8ac687b3..b5c2fde82a 100644 --- a/src/applications/repository/storage/PhabricatorRepositoryCommit.php +++ b/src/applications/repository/storage/PhabricatorRepositoryCommit.php @@ -466,6 +466,18 @@ final class PhabricatorRepositoryCommit return $data->getCommitDetail('authorPHID'); } + public function getEffectiveAuthorPHID() { + if ($this->hasAuthorIdentity()) { + $identity = $this->getAuthorIdentity(); + if ($identity->hasEffectiveUser()) { + return $identity->getCurrentEffectiveUserPHID(); + } + } + + $data = $this->getCommitData(); + return $data->getCommitDetail('authorPHID'); + } + public function getAuditStatusObject() { $status = $this->getAuditStatus(); return DiffusionCommitAuditStatus::newForStatus($status); diff --git a/src/applications/repository/worker/PhabricatorRepositoryCommitPublishWorker.php b/src/applications/repository/worker/PhabricatorRepositoryCommitPublishWorker.php index 3865050395..0b0a194806 100644 --- a/src/applications/repository/worker/PhabricatorRepositoryCommitPublishWorker.php +++ b/src/applications/repository/worker/PhabricatorRepositoryCommitPublishWorker.php @@ -147,7 +147,7 @@ final class PhabricatorRepositoryCommitPublishWorker $data = $commit->getCommitData(); - $author_phid = $data->getCommitDetail('authorPHID'); + $author_phid = $commit->getEffectiveAuthorPHID(); $revision = DiffusionCommitRevisionQuery::loadRevisionForCommit( $viewer,