@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
1
fork

Configure Feed

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

Add diffusion.commit.search Conduit API method

Summary: Ref T10978. This is bare bones, but the SearchEngine is at least mostly in reasonable shape now, so get it in place and freeze the old stuff. I previously froze `audit.query`, which did much the same thing.

Test Plan: Issued some queries with the API, technically got results back.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10978

Differential Revision: https://secure.phabricator.com/D17194

+55 -1
+3
src/__phutil_library_map__.php
··· 667 667 'DiffusionCommitRevisionHeraldField' => 'applications/diffusion/herald/DiffusionCommitRevisionHeraldField.php', 668 668 'DiffusionCommitRevisionReviewersHeraldField' => 'applications/diffusion/herald/DiffusionCommitRevisionReviewersHeraldField.php', 669 669 'DiffusionCommitRevisionSubscribersHeraldField' => 'applications/diffusion/herald/DiffusionCommitRevisionSubscribersHeraldField.php', 670 + 'DiffusionCommitSearchConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionCommitSearchConduitAPIMethod.php', 670 671 'DiffusionCommitTagsController' => 'applications/diffusion/controller/DiffusionCommitTagsController.php', 671 672 'DiffusionCommitTransactionType' => 'applications/diffusion/xaction/DiffusionCommitTransactionType.php', 672 673 'DiffusionCompareController' => 'applications/diffusion/controller/DiffusionCompareController.php', ··· 5373 5374 'DiffusionCommitRevisionHeraldField' => 'DiffusionCommitHeraldField', 5374 5375 'DiffusionCommitRevisionReviewersHeraldField' => 'DiffusionCommitHeraldField', 5375 5376 'DiffusionCommitRevisionSubscribersHeraldField' => 'DiffusionCommitHeraldField', 5377 + 'DiffusionCommitSearchConduitAPIMethod' => 'PhabricatorSearchEngineAPIMethod', 5376 5378 'DiffusionCommitTagsController' => 'DiffusionController', 5377 5379 'DiffusionCommitTransactionType' => 'PhabricatorModularTransactionType', 5378 5380 'DiffusionCompareController' => 'DiffusionController', ··· 8783 8785 'PhabricatorCustomFieldInterface', 8784 8786 'PhabricatorApplicationTransactionInterface', 8785 8787 'PhabricatorFulltextInterface', 8788 + 'PhabricatorConduitResultInterface', 8786 8789 ), 8787 8790 'PhabricatorRepositoryCommitChangeParserWorker' => 'PhabricatorRepositoryCommitParserWorker', 8788 8791 'PhabricatorRepositoryCommitData' => 'PhabricatorRepositoryDAO',
+18
src/applications/diffusion/conduit/DiffusionCommitSearchConduitAPIMethod.php
··· 1 + <?php 2 + 3 + final class DiffusionCommitSearchConduitAPIMethod 4 + extends PhabricatorSearchEngineAPIMethod { 5 + 6 + public function getAPIMethodName() { 7 + return 'diffusion.commit.search'; 8 + } 9 + 10 + public function newSearchEngine() { 11 + return new PhabricatorCommitSearchEngine(); 12 + } 13 + 14 + public function getMethodSummary() { 15 + return pht('Read information about commits.'); 16 + } 17 + 18 + }
+10
src/applications/diffusion/conduit/DiffusionQueryCommitsConduitAPIMethod.php
··· 11 11 return pht('Retrieve information about commits.'); 12 12 } 13 13 14 + public function getMethodStatus() { 15 + return self::METHOD_STATUS_FROZEN; 16 + } 17 + 18 + public function getMethodStatusDescription() { 19 + return pht( 20 + 'This method is frozen and will eventually be deprecated. New code '. 21 + 'should use "diffusion.commit.search" instead.'); 22 + } 23 + 14 24 protected function defineReturnType() { 15 25 return 'map<string, dict>'; 16 26 }
+24 -1
src/applications/repository/storage/PhabricatorRepositoryCommit.php
··· 13 13 HarbormasterCircleCIBuildableInterface, 14 14 PhabricatorCustomFieldInterface, 15 15 PhabricatorApplicationTransactionInterface, 16 - PhabricatorFulltextInterface { 16 + PhabricatorFulltextInterface, 17 + PhabricatorConduitResultInterface { 17 18 18 19 protected $repositoryID; 19 20 protected $phid; ··· 578 579 579 580 public function newFulltextEngine() { 580 581 return new DiffusionCommitFulltextEngine(); 582 + } 583 + 584 + 585 + /* -( PhabricatorConduitResultInterface )---------------------------------- */ 586 + 587 + public function getFieldSpecificationsForConduit() { 588 + return array( 589 + id(new PhabricatorConduitSearchFieldSpecification()) 590 + ->setKey('identifier') 591 + ->setType('string') 592 + ->setDescription(pht('The commit identifier.')), 593 + ); 594 + } 595 + 596 + public function getFieldValuesForConduit() { 597 + return array( 598 + 'identifier' => $this->getCommitIdentifier(), 599 + ); 600 + } 601 + 602 + public function getConduitSearchAttachments() { 603 + return array(); 581 604 } 582 605 583 606 }