mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-23 22:10:55 +01:00
Add "Is merge commit?" to commit fields in Herald
Summary: Fixes T5788. We already have this as a pre-commit field, add it as a post-commit field too. Test Plan: Ran this rule on a merge commit. Also ran it on a non-merge commit. Both got the correct value. Reviewers: avivey, chad Reviewed By: avivey, chad Subscribers: avivey Maniphest Tasks: T5788 Differential Revision: https://secure.phabricator.com/D14685
This commit is contained in:
parent
bc331f0fbf
commit
2353121dee
3 changed files with 49 additions and 10 deletions
|
@ -550,6 +550,7 @@ phutil_register_library_map(array(
|
|||
'DiffusionCommitHeraldFieldGroup' => 'applications/diffusion/herald/DiffusionCommitHeraldFieldGroup.php',
|
||||
'DiffusionCommitHookEngine' => 'applications/diffusion/engine/DiffusionCommitHookEngine.php',
|
||||
'DiffusionCommitHookRejectException' => 'applications/diffusion/exception/DiffusionCommitHookRejectException.php',
|
||||
'DiffusionCommitMergeHeraldField' => 'applications/diffusion/herald/DiffusionCommitMergeHeraldField.php',
|
||||
'DiffusionCommitMessageHeraldField' => 'applications/diffusion/herald/DiffusionCommitMessageHeraldField.php',
|
||||
'DiffusionCommitPackageAuditHeraldField' => 'applications/diffusion/herald/DiffusionCommitPackageAuditHeraldField.php',
|
||||
'DiffusionCommitPackageHeraldField' => 'applications/diffusion/herald/DiffusionCommitPackageHeraldField.php',
|
||||
|
@ -4412,6 +4413,7 @@ phutil_register_library_map(array(
|
|||
'DiffusionCommitHeraldFieldGroup' => 'HeraldFieldGroup',
|
||||
'DiffusionCommitHookEngine' => 'Phobject',
|
||||
'DiffusionCommitHookRejectException' => 'Exception',
|
||||
'DiffusionCommitMergeHeraldField' => 'DiffusionCommitHeraldField',
|
||||
'DiffusionCommitMessageHeraldField' => 'DiffusionCommitHeraldField',
|
||||
'DiffusionCommitPackageAuditHeraldField' => 'DiffusionCommitHeraldField',
|
||||
'DiffusionCommitPackageHeraldField' => 'DiffusionCommitHeraldField',
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
final class DiffusionCommitMergeHeraldField
|
||||
extends DiffusionCommitHeraldField {
|
||||
|
||||
const FIELDCONST = 'diffusion.commit.merge';
|
||||
|
||||
public function getHeraldFieldName() {
|
||||
return pht('Is merge commit');
|
||||
}
|
||||
|
||||
public function getHeraldFieldValue($object) {
|
||||
return $this->getAdapter()->loadIsMergeCommit();
|
||||
}
|
||||
|
||||
protected function getHeraldFieldStandardType() {
|
||||
return HeraldField::STANDARD_BOOL;
|
||||
}
|
||||
|
||||
}
|
|
@ -209,18 +209,9 @@ final class HeraldCommitAdapter
|
|||
}
|
||||
|
||||
private function loadCommitDiff() {
|
||||
$drequest = DiffusionRequest::newFromDictionary(
|
||||
array(
|
||||
'user' => PhabricatorUser::getOmnipotentUser(),
|
||||
'repository' => $this->repository,
|
||||
'commit' => $this->commit->getCommitIdentifier(),
|
||||
));
|
||||
|
||||
$byte_limit = self::getEnormousByteLimit();
|
||||
|
||||
$raw = DiffusionQuery::callConduitWithDiffusionRequest(
|
||||
PhabricatorUser::getOmnipotentUser(),
|
||||
$drequest,
|
||||
$raw = $this->callConduit(
|
||||
'diffusion.rawdiffquery',
|
||||
array(
|
||||
'commit' => $this->commit->getCommitIdentifier(),
|
||||
|
@ -296,6 +287,32 @@ final class HeraldCommitAdapter
|
|||
return $result;
|
||||
}
|
||||
|
||||
public function loadIsMergeCommit() {
|
||||
$parents = $this->callConduit(
|
||||
'diffusion.commitparentsquery',
|
||||
array(
|
||||
'commit' => $this->getObject()->getCommitIdentifier(),
|
||||
));
|
||||
|
||||
return (count($parents) > 1);
|
||||
}
|
||||
|
||||
private function callConduit($method, array $params) {
|
||||
$viewer = PhabricatorUser::getOmnipotentUser();
|
||||
|
||||
$drequest = DiffusionRequest::newFromDictionary(
|
||||
array(
|
||||
'user' => $viewer,
|
||||
'repository' => $this->repository,
|
||||
'commit' => $this->commit->getCommitIdentifier(),
|
||||
));
|
||||
|
||||
return DiffusionQuery::callConduitWithDiffusionRequest(
|
||||
$viewer,
|
||||
$drequest,
|
||||
$method,
|
||||
$params);
|
||||
}
|
||||
|
||||
/* -( HarbormasterBuildableAdapterInterface )------------------------------ */
|
||||
|
||||
|
|
Loading…
Reference in a new issue