diff --git a/src/applications/calendar/herald/PhabricatorCalendarEventHeraldAdapter.php b/src/applications/calendar/herald/PhabricatorCalendarEventHeraldAdapter.php index 1fc3a56317..49d5f38959 100644 --- a/src/applications/calendar/herald/PhabricatorCalendarEventHeraldAdapter.php +++ b/src/applications/calendar/herald/PhabricatorCalendarEventHeraldAdapter.php @@ -49,13 +49,6 @@ final class PhabricatorCalendarEventHeraldAdapter extends HeraldAdapter { } } - public function getRepetitionOptions() { - return array( - HeraldRepetitionPolicyConfig::EVERY, - HeraldRepetitionPolicyConfig::FIRST, - ); - } - public function getHeraldName() { return $this->getObject()->getMonogram(); } diff --git a/src/applications/differential/herald/HeraldDifferentialDiffAdapter.php b/src/applications/differential/herald/HeraldDifferentialDiffAdapter.php index 9528978050..a6b2e7c36e 100644 --- a/src/applications/differential/herald/HeraldDifferentialDiffAdapter.php +++ b/src/applications/differential/herald/HeraldDifferentialDiffAdapter.php @@ -53,12 +53,6 @@ final class HeraldDifferentialDiffAdapter extends HeraldDifferentialAdapter { } } - public function getRepetitionOptions() { - return array( - HeraldRepetitionPolicyConfig::FIRST, - ); - } - public function getHeraldName() { return pht('New Diff'); } diff --git a/src/applications/differential/herald/HeraldDifferentialRevisionAdapter.php b/src/applications/differential/herald/HeraldDifferentialRevisionAdapter.php index e20a4fd37d..9f7f8fe3f2 100644 --- a/src/applications/differential/herald/HeraldDifferentialRevisionAdapter.php +++ b/src/applications/differential/herald/HeraldDifferentialRevisionAdapter.php @@ -69,13 +69,6 @@ final class HeraldDifferentialRevisionAdapter } } - public function getRepetitionOptions() { - return array( - HeraldRepetitionPolicyConfig::EVERY, - HeraldRepetitionPolicyConfig::FIRST, - ); - } - public static function newLegacyAdapter( DifferentialRevision $revision, DifferentialDiff $diff) { diff --git a/src/applications/herald/adapter/HeraldAdapter.php b/src/applications/herald/adapter/HeraldAdapter.php index 1c50c0b5ee..cdf1d3a864 100644 --- a/src/applications/herald/adapter/HeraldAdapter.php +++ b/src/applications/herald/adapter/HeraldAdapter.php @@ -764,9 +764,19 @@ abstract class HeraldAdapter extends Phobject { public function getRepetitionOptions() { - return array( - HeraldRepetitionPolicyConfig::EVERY, - ); + $options = array(); + + $options[] = HeraldRepetitionPolicyConfig::EVERY; + + // Some rules, like pre-commit rules, only ever fire once. It doesn't + // make sense to use state-based repetition policies like "only the first + // time" for these rules. + + if (!$this->isSingleEventAdapter()) { + $options[] = HeraldRepetitionPolicyConfig::FIRST; + } + + return $options; } protected function initializeNewAdapter() { diff --git a/src/applications/maniphest/herald/HeraldManiphestTaskAdapter.php b/src/applications/maniphest/herald/HeraldManiphestTaskAdapter.php index 8503839e3e..1aa544de57 100644 --- a/src/applications/maniphest/herald/HeraldManiphestTaskAdapter.php +++ b/src/applications/maniphest/herald/HeraldManiphestTaskAdapter.php @@ -33,13 +33,6 @@ final class HeraldManiphestTaskAdapter extends HeraldAdapter { return true; } - public function getRepetitionOptions() { - return array( - HeraldRepetitionPolicyConfig::EVERY, - HeraldRepetitionPolicyConfig::FIRST, - ); - } - public function supportsRuleType($rule_type) { switch ($rule_type) { case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL: diff --git a/src/applications/metamta/herald/PhabricatorMailOutboundMailHeraldAdapter.php b/src/applications/metamta/herald/PhabricatorMailOutboundMailHeraldAdapter.php index 6ca797833e..f96a6f86bd 100644 --- a/src/applications/metamta/herald/PhabricatorMailOutboundMailHeraldAdapter.php +++ b/src/applications/metamta/herald/PhabricatorMailOutboundMailHeraldAdapter.php @@ -49,12 +49,6 @@ final class PhabricatorMailOutboundMailHeraldAdapter return true; } - public function getRepetitionOptions() { - return array( - HeraldRepetitionPolicyConfig::FIRST, - ); - } - public function supportsRuleType($rule_type) { switch ($rule_type) { case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL: diff --git a/src/applications/phame/herald/HeraldPhameBlogAdapter.php b/src/applications/phame/herald/HeraldPhameBlogAdapter.php index d8956ba4a6..d9368a97d2 100644 --- a/src/applications/phame/herald/HeraldPhameBlogAdapter.php +++ b/src/applications/phame/herald/HeraldPhameBlogAdapter.php @@ -24,13 +24,6 @@ final class HeraldPhameBlogAdapter extends HeraldAdapter { return true; } - public function getRepetitionOptions() { - return array( - HeraldRepetitionPolicyConfig::EVERY, - HeraldRepetitionPolicyConfig::FIRST, - ); - } - public function supportsRuleType($rule_type) { switch ($rule_type) { case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL: diff --git a/src/applications/phame/herald/HeraldPhamePostAdapter.php b/src/applications/phame/herald/HeraldPhamePostAdapter.php index 4776bbbdbc..72e7124271 100644 --- a/src/applications/phame/herald/HeraldPhamePostAdapter.php +++ b/src/applications/phame/herald/HeraldPhamePostAdapter.php @@ -24,13 +24,6 @@ final class HeraldPhamePostAdapter extends HeraldAdapter { return true; } - public function getRepetitionOptions() { - return array( - HeraldRepetitionPolicyConfig::EVERY, - HeraldRepetitionPolicyConfig::FIRST, - ); - } - public function supportsRuleType($rule_type) { switch ($rule_type) { case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL: diff --git a/src/applications/ponder/herald/HeraldPonderQuestionAdapter.php b/src/applications/ponder/herald/HeraldPonderQuestionAdapter.php index f3f47681bb..f9434c7f78 100644 --- a/src/applications/ponder/herald/HeraldPonderQuestionAdapter.php +++ b/src/applications/ponder/herald/HeraldPonderQuestionAdapter.php @@ -39,13 +39,6 @@ final class HeraldPonderQuestionAdapter extends HeraldAdapter { return true; } - public function getRepetitionOptions() { - return array( - HeraldRepetitionPolicyConfig::EVERY, - HeraldRepetitionPolicyConfig::FIRST, - ); - } - public function supportsRuleType($rule_type) { switch ($rule_type) { case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL: diff --git a/src/applications/project/herald/PhabricatorProjectHeraldAdapter.php b/src/applications/project/herald/PhabricatorProjectHeraldAdapter.php index f6d0984cb6..72f064a5c6 100644 --- a/src/applications/project/herald/PhabricatorProjectHeraldAdapter.php +++ b/src/applications/project/herald/PhabricatorProjectHeraldAdapter.php @@ -24,13 +24,6 @@ final class PhabricatorProjectHeraldAdapter extends HeraldAdapter { return true; } - public function getRepetitionOptions() { - return array( - HeraldRepetitionPolicyConfig::EVERY, - HeraldRepetitionPolicyConfig::FIRST, - ); - } - public function supportsRuleType($rule_type) { switch ($rule_type) { case HeraldRuleTypeConfig::RULE_TYPE_GLOBAL: