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,
|
||||||
self::FIELD_PUSHER_PROJECTS,
|
self::FIELD_PUSHER_PROJECTS,
|
||||||
self::FIELD_DIFFERENTIAL_REVISION,
|
self::FIELD_DIFFERENTIAL_REVISION,
|
||||||
|
self::FIELD_DIFFERENTIAL_ACCEPTED,
|
||||||
self::FIELD_DIFFERENTIAL_REVIEWERS,
|
self::FIELD_DIFFERENTIAL_REVIEWERS,
|
||||||
self::FIELD_DIFFERENTIAL_CCS,
|
self::FIELD_DIFFERENTIAL_CCS,
|
||||||
self::FIELD_RULE,
|
self::FIELD_RULE,
|
||||||
|
@ -118,6 +119,16 @@ final class HeraldPreCommitContentAdapter extends HeraldAdapter {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return $revision->getPHID();
|
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:
|
case self::FIELD_DIFFERENTIAL_REVIEWERS:
|
||||||
$revision = $this->getRevision();
|
$revision = $this->getRevision();
|
||||||
if (!$revision) {
|
if (!$revision) {
|
||||||
|
|
|
@ -30,6 +30,7 @@ abstract class HeraldAdapter {
|
||||||
const FIELD_DIFFERENTIAL_REVISION = 'differential-revision';
|
const FIELD_DIFFERENTIAL_REVISION = 'differential-revision';
|
||||||
const FIELD_DIFFERENTIAL_REVIEWERS = 'differential-reviewers';
|
const FIELD_DIFFERENTIAL_REVIEWERS = 'differential-reviewers';
|
||||||
const FIELD_DIFFERENTIAL_CCS = 'differential-ccs';
|
const FIELD_DIFFERENTIAL_CCS = 'differential-ccs';
|
||||||
|
const FIELD_DIFFERENTIAL_ACCEPTED = 'differential-accepted';
|
||||||
|
|
||||||
const CONDITION_CONTAINS = 'contains';
|
const CONDITION_CONTAINS = 'contains';
|
||||||
const CONDITION_NOT_CONTAINS = '!contains';
|
const CONDITION_NOT_CONTAINS = '!contains';
|
||||||
|
@ -169,6 +170,8 @@ abstract class HeraldAdapter {
|
||||||
self::FIELD_DIFFERENTIAL_REVISION => pht('Differential revision'),
|
self::FIELD_DIFFERENTIAL_REVISION => pht('Differential revision'),
|
||||||
self::FIELD_DIFFERENTIAL_REVIEWERS => pht('Differential reviewers'),
|
self::FIELD_DIFFERENTIAL_REVIEWERS => pht('Differential reviewers'),
|
||||||
self::FIELD_DIFFERENTIAL_CCS => pht('Differential CCs'),
|
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,
|
self::CONDITION_INCLUDE_NONE,
|
||||||
);
|
);
|
||||||
case self::FIELD_DIFFERENTIAL_REVISION:
|
case self::FIELD_DIFFERENTIAL_REVISION:
|
||||||
|
case self::FIELD_DIFFERENTIAL_ACCEPTED:
|
||||||
return array(
|
return array(
|
||||||
self::CONDITION_EXISTS,
|
self::CONDITION_EXISTS,
|
||||||
self::CONDITION_NOT_EXISTS,
|
self::CONDITION_NOT_EXISTS,
|
||||||
|
|
|
@ -336,6 +336,16 @@ final class HeraldCommitAdapter extends HeraldAdapter {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return $revision->getID();
|
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:
|
case self::FIELD_DIFFERENTIAL_REVIEWERS:
|
||||||
$revision = $this->loadDifferentialRevision();
|
$revision = $this->loadDifferentialRevision();
|
||||||
if (!$revision) {
|
if (!$revision) {
|
||||||
|
|
Loading…
Reference in a new issue