@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

+49 -10
+2
src/__phutil_library_map__.php
··· 550 550 'DiffusionCommitHeraldFieldGroup' => 'applications/diffusion/herald/DiffusionCommitHeraldFieldGroup.php', 551 551 'DiffusionCommitHookEngine' => 'applications/diffusion/engine/DiffusionCommitHookEngine.php', 552 552 'DiffusionCommitHookRejectException' => 'applications/diffusion/exception/DiffusionCommitHookRejectException.php', 553 + 'DiffusionCommitMergeHeraldField' => 'applications/diffusion/herald/DiffusionCommitMergeHeraldField.php', 553 554 'DiffusionCommitMessageHeraldField' => 'applications/diffusion/herald/DiffusionCommitMessageHeraldField.php', 554 555 'DiffusionCommitPackageAuditHeraldField' => 'applications/diffusion/herald/DiffusionCommitPackageAuditHeraldField.php', 555 556 'DiffusionCommitPackageHeraldField' => 'applications/diffusion/herald/DiffusionCommitPackageHeraldField.php', ··· 4412 4413 'DiffusionCommitHeraldFieldGroup' => 'HeraldFieldGroup', 4413 4414 'DiffusionCommitHookEngine' => 'Phobject', 4414 4415 'DiffusionCommitHookRejectException' => 'Exception', 4416 + 'DiffusionCommitMergeHeraldField' => 'DiffusionCommitHeraldField', 4415 4417 'DiffusionCommitMessageHeraldField' => 'DiffusionCommitHeraldField', 4416 4418 'DiffusionCommitPackageAuditHeraldField' => 'DiffusionCommitHeraldField', 4417 4419 'DiffusionCommitPackageHeraldField' => 'DiffusionCommitHeraldField',
+20
src/applications/diffusion/herald/DiffusionCommitMergeHeraldField.php
··· 1 + <?php 2 + 3 + final class DiffusionCommitMergeHeraldField 4 + extends DiffusionCommitHeraldField { 5 + 6 + const FIELDCONST = 'diffusion.commit.merge'; 7 + 8 + public function getHeraldFieldName() { 9 + return pht('Is merge commit'); 10 + } 11 + 12 + public function getHeraldFieldValue($object) { 13 + return $this->getAdapter()->loadIsMergeCommit(); 14 + } 15 + 16 + protected function getHeraldFieldStandardType() { 17 + return HeraldField::STANDARD_BOOL; 18 + } 19 + 20 + }
+27 -10
src/applications/diffusion/herald/HeraldCommitAdapter.php
··· 209 209 } 210 210 211 211 private function loadCommitDiff() { 212 - $drequest = DiffusionRequest::newFromDictionary( 213 - array( 214 - 'user' => PhabricatorUser::getOmnipotentUser(), 215 - 'repository' => $this->repository, 216 - 'commit' => $this->commit->getCommitIdentifier(), 217 - )); 218 - 219 212 $byte_limit = self::getEnormousByteLimit(); 220 213 221 - $raw = DiffusionQuery::callConduitWithDiffusionRequest( 222 - PhabricatorUser::getOmnipotentUser(), 223 - $drequest, 214 + $raw = $this->callConduit( 224 215 'diffusion.rawdiffquery', 225 216 array( 226 217 'commit' => $this->commit->getCommitIdentifier(), ··· 296 287 return $result; 297 288 } 298 289 290 + public function loadIsMergeCommit() { 291 + $parents = $this->callConduit( 292 + 'diffusion.commitparentsquery', 293 + array( 294 + 'commit' => $this->getObject()->getCommitIdentifier(), 295 + )); 296 + 297 + return (count($parents) > 1); 298 + } 299 + 300 + private function callConduit($method, array $params) { 301 + $viewer = PhabricatorUser::getOmnipotentUser(); 302 + 303 + $drequest = DiffusionRequest::newFromDictionary( 304 + array( 305 + 'user' => $viewer, 306 + 'repository' => $this->repository, 307 + 'commit' => $this->commit->getCommitIdentifier(), 308 + )); 309 + 310 + return DiffusionQuery::callConduitWithDiffusionRequest( 311 + $viewer, 312 + $drequest, 313 + $method, 314 + $params); 315 + } 299 316 300 317 /* -( HarbormasterBuildableAdapterInterface )------------------------------ */ 301 318