diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -681,6 +681,7 @@ 'DiffusionCommitReviewerHeraldField' => 'applications/diffusion/herald/DiffusionCommitReviewerHeraldField.php', 'DiffusionCommitRevisionAcceptedHeraldField' => 'applications/diffusion/herald/DiffusionCommitRevisionAcceptedHeraldField.php', 'DiffusionCommitRevisionHeraldField' => 'applications/diffusion/herald/DiffusionCommitRevisionHeraldField.php', + 'DiffusionCommitRevisionReviewedByHeraldField' => 'applications/diffusion/herald/DiffusionCommitRevisionReviewedByHeraldField.php', 'DiffusionCommitRevisionReviewersHeraldField' => 'applications/diffusion/herald/DiffusionCommitRevisionReviewersHeraldField.php', 'DiffusionCommitRevisionSubscribersHeraldField' => 'applications/diffusion/herald/DiffusionCommitRevisionSubscribersHeraldField.php', 'DiffusionCommitSearchConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionCommitSearchConduitAPIMethod.php', @@ -5674,6 +5675,7 @@ 'DiffusionCommitReviewerHeraldField' => 'DiffusionCommitHeraldField', 'DiffusionCommitRevisionAcceptedHeraldField' => 'DiffusionCommitHeraldField', 'DiffusionCommitRevisionHeraldField' => 'DiffusionCommitHeraldField', + 'DiffusionCommitRevisionReviewedByHeraldField' => 'DiffusionCommitHeraldField', 'DiffusionCommitRevisionReviewersHeraldField' => 'DiffusionCommitHeraldField', 'DiffusionCommitRevisionSubscribersHeraldField' => 'DiffusionCommitHeraldField', 'DiffusionCommitSearchConduitAPIMethod' => 'PhabricatorSearchEngineAPIMethod', diff --git a/src/applications/diffusion/herald/DiffusionCommitRevisionReviewedByHeraldField.php b/src/applications/diffusion/herald/DiffusionCommitRevisionReviewedByHeraldField.php new file mode 100644 --- /dev/null +++ b/src/applications/diffusion/herald/DiffusionCommitRevisionReviewedByHeraldField.php @@ -0,0 +1,43 @@ +getAdapter()->loadDifferentialRevision(); + + if (!$revision) { + return array(); + } + + $phids = array(); + foreach ($revision->getReviewers() as $reviewer) { + switch ($reviewer->getReviewerStatus()) { + case DifferentialReviewerStatus::STATUS_ACCEPTED: + $phids[] = $reviewer->getReviewerPHID(); + break; + } + } + + return $phids; + } + + protected function getHeraldFieldStandardType() { + return self::STANDARD_PHID_LIST; + } + + protected function getDatasource() { + return new PhabricatorProjectOrUserDatasource(); + } + +}