Page MenuHomePhabricator

D14685.id35517.diff
No OneTemporary

D14685.id35517.diff

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
@@ -550,6 +550,7 @@
'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 @@
'DiffusionCommitHeraldFieldGroup' => 'HeraldFieldGroup',
'DiffusionCommitHookEngine' => 'Phobject',
'DiffusionCommitHookRejectException' => 'Exception',
+ 'DiffusionCommitMergeHeraldField' => 'DiffusionCommitHeraldField',
'DiffusionCommitMessageHeraldField' => 'DiffusionCommitHeraldField',
'DiffusionCommitPackageAuditHeraldField' => 'DiffusionCommitHeraldField',
'DiffusionCommitPackageHeraldField' => 'DiffusionCommitHeraldField',
diff --git a/src/applications/diffusion/herald/DiffusionCommitMergeHeraldField.php b/src/applications/diffusion/herald/DiffusionCommitMergeHeraldField.php
new file mode 100644
--- /dev/null
+++ b/src/applications/diffusion/herald/DiffusionCommitMergeHeraldField.php
@@ -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;
+ }
+
+}
diff --git a/src/applications/diffusion/herald/HeraldCommitAdapter.php b/src/applications/diffusion/herald/HeraldCommitAdapter.php
--- a/src/applications/diffusion/herald/HeraldCommitAdapter.php
+++ b/src/applications/diffusion/herald/HeraldCommitAdapter.php
@@ -209,18 +209,9 @@
}
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 @@
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 )------------------------------ */

File Metadata

Mime Type
text/plain
Expires
Sat, May 25, 9:24 AM (3 w, 5 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6287724
Default Alt Text
D14685.id35517.diff (3 KB)

Event Timeline