diff --git a/src/applications/repository/storage/PhabricatorRepositoryCommit.php b/src/applications/repository/storage/PhabricatorRepositoryCommit.php --- a/src/applications/repository/storage/PhabricatorRepositoryCommit.php +++ b/src/applications/repository/storage/PhabricatorRepositoryCommit.php @@ -466,6 +466,18 @@ 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 --- a/src/applications/repository/worker/PhabricatorRepositoryCommitPublishWorker.php +++ b/src/applications/repository/worker/PhabricatorRepositoryCommitPublishWorker.php @@ -147,7 +147,7 @@ $data = $commit->getCommitData(); - $author_phid = $data->getCommitDetail('authorPHID'); + $author_phid = $commit->getEffectiveAuthorPHID(); $revision = DiffusionCommitRevisionQuery::loadRevisionForCommit( $viewer,