mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-20 20:40:56 +01:00
Add an "Accepted Differential revision" field to Commit and pre-commit Content Herald rules
Summary: Refs T4195. Fixes T3936. You can't currently write rules like "block commits unless they're attached to an **accepted** revision"; allow that. Test Plan: Pushed commits into a rule with this field, saw it work / not crash. Reviewers: btrahan Reviewed By: btrahan CC: aran, mbishopim3 Maniphest Tasks: T3936, T4195 Differential Revision: https://secure.phabricator.com/D7807
This commit is contained in:
parent
2436458b90
commit
72c73d644b
3 changed files with 25 additions and 0 deletions
|
@ -50,6 +50,7 @@ final class HeraldPreCommitContentAdapter extends HeraldAdapter {
|
|||
self::FIELD_PUSHER,
|
||||
self::FIELD_PUSHER_PROJECTS,
|
||||
self::FIELD_DIFFERENTIAL_REVISION,
|
||||
self::FIELD_DIFFERENTIAL_ACCEPTED,
|
||||
self::FIELD_DIFFERENTIAL_REVIEWERS,
|
||||
self::FIELD_DIFFERENTIAL_CCS,
|
||||
self::FIELD_RULE,
|
||||
|
@ -118,6 +119,16 @@ final class HeraldPreCommitContentAdapter extends HeraldAdapter {
|
|||
return null;
|
||||
}
|
||||
return $revision->getPHID();
|
||||
case self::FIELD_DIFFERENTIAL_ACCEPTED:
|
||||
$revision = $this->getRevision();
|
||||
if (!$revision) {
|
||||
return null;
|
||||
}
|
||||
$status_accepted = ArcanistDifferentialRevisionStatus::ACCEPTED;
|
||||
if ($revision->getStatus() != $status_accepted) {
|
||||
return null;
|
||||
}
|
||||
return $revision->getPHID();
|
||||
case self::FIELD_DIFFERENTIAL_REVIEWERS:
|
||||
$revision = $this->getRevision();
|
||||
if (!$revision) {
|
||||
|
|
|
@ -30,6 +30,7 @@ abstract class HeraldAdapter {
|
|||
const FIELD_DIFFERENTIAL_REVISION = 'differential-revision';
|
||||
const FIELD_DIFFERENTIAL_REVIEWERS = 'differential-reviewers';
|
||||
const FIELD_DIFFERENTIAL_CCS = 'differential-ccs';
|
||||
const FIELD_DIFFERENTIAL_ACCEPTED = 'differential-accepted';
|
||||
|
||||
const CONDITION_CONTAINS = 'contains';
|
||||
const CONDITION_NOT_CONTAINS = '!contains';
|
||||
|
@ -169,6 +170,8 @@ abstract class HeraldAdapter {
|
|||
self::FIELD_DIFFERENTIAL_REVISION => pht('Differential revision'),
|
||||
self::FIELD_DIFFERENTIAL_REVIEWERS => pht('Differential reviewers'),
|
||||
self::FIELD_DIFFERENTIAL_CCS => pht('Differential CCs'),
|
||||
self::FIELD_DIFFERENTIAL_ACCEPTED
|
||||
=> pht('Accepted Differential revision'),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -284,6 +287,7 @@ abstract class HeraldAdapter {
|
|||
self::CONDITION_INCLUDE_NONE,
|
||||
);
|
||||
case self::FIELD_DIFFERENTIAL_REVISION:
|
||||
case self::FIELD_DIFFERENTIAL_ACCEPTED:
|
||||
return array(
|
||||
self::CONDITION_EXISTS,
|
||||
self::CONDITION_NOT_EXISTS,
|
||||
|
|
|
@ -336,6 +336,16 @@ final class HeraldCommitAdapter extends HeraldAdapter {
|
|||
return null;
|
||||
}
|
||||
return $revision->getID();
|
||||
case self::FIELD_DIFFERENTIAL_ACCEPTED:
|
||||
$revision = $this->loadDifferentialRevision();
|
||||
if (!$revision) {
|
||||
return null;
|
||||
}
|
||||
$status_accepted = ArcanistDifferentialRevisionStatus::ACCEPTED;
|
||||
if ($revision->getStatus() != $status_accepted) {
|
||||
return null;
|
||||
}
|
||||
return $revision->getPHID();
|
||||
case self::FIELD_DIFFERENTIAL_REVIEWERS:
|
||||
$revision = $this->loadDifferentialRevision();
|
||||
if (!$revision) {
|
||||
|
|
Loading…
Reference in a new issue