From 19525ed81afad93d2f1a6b3f74542ee0adef59ee Mon Sep 17 00:00:00 2001 From: epriestley Date: Thu, 12 Jan 2017 12:47:42 -0800 Subject: [PATCH] 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 --- src/__phutil_library_map__.php | 3 +++ .../DiffusionCommitSearchConduitAPIMethod.php | 18 +++++++++++++ .../DiffusionQueryCommitsConduitAPIMethod.php | 10 ++++++++ .../storage/PhabricatorRepositoryCommit.php | 25 ++++++++++++++++++- 4 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 src/applications/diffusion/conduit/DiffusionCommitSearchConduitAPIMethod.php diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index e704ece353..e0bcc82c8d 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -667,6 +667,7 @@ phutil_register_library_map(array( 'DiffusionCommitRevisionHeraldField' => 'applications/diffusion/herald/DiffusionCommitRevisionHeraldField.php', 'DiffusionCommitRevisionReviewersHeraldField' => 'applications/diffusion/herald/DiffusionCommitRevisionReviewersHeraldField.php', 'DiffusionCommitRevisionSubscribersHeraldField' => 'applications/diffusion/herald/DiffusionCommitRevisionSubscribersHeraldField.php', + 'DiffusionCommitSearchConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionCommitSearchConduitAPIMethod.php', 'DiffusionCommitTagsController' => 'applications/diffusion/controller/DiffusionCommitTagsController.php', 'DiffusionCommitTransactionType' => 'applications/diffusion/xaction/DiffusionCommitTransactionType.php', 'DiffusionCompareController' => 'applications/diffusion/controller/DiffusionCompareController.php', @@ -5373,6 +5374,7 @@ phutil_register_library_map(array( 'DiffusionCommitRevisionHeraldField' => 'DiffusionCommitHeraldField', 'DiffusionCommitRevisionReviewersHeraldField' => 'DiffusionCommitHeraldField', 'DiffusionCommitRevisionSubscribersHeraldField' => 'DiffusionCommitHeraldField', + 'DiffusionCommitSearchConduitAPIMethod' => 'PhabricatorSearchEngineAPIMethod', 'DiffusionCommitTagsController' => 'DiffusionController', 'DiffusionCommitTransactionType' => 'PhabricatorModularTransactionType', 'DiffusionCompareController' => 'DiffusionController', @@ -8783,6 +8785,7 @@ phutil_register_library_map(array( 'PhabricatorCustomFieldInterface', 'PhabricatorApplicationTransactionInterface', 'PhabricatorFulltextInterface', + 'PhabricatorConduitResultInterface', ), 'PhabricatorRepositoryCommitChangeParserWorker' => 'PhabricatorRepositoryCommitParserWorker', 'PhabricatorRepositoryCommitData' => 'PhabricatorRepositoryDAO', diff --git a/src/applications/diffusion/conduit/DiffusionCommitSearchConduitAPIMethod.php b/src/applications/diffusion/conduit/DiffusionCommitSearchConduitAPIMethod.php new file mode 100644 index 0000000000..667e1d51b1 --- /dev/null +++ b/src/applications/diffusion/conduit/DiffusionCommitSearchConduitAPIMethod.php @@ -0,0 +1,18 @@ +'; } diff --git a/src/applications/repository/storage/PhabricatorRepositoryCommit.php b/src/applications/repository/storage/PhabricatorRepositoryCommit.php index fd3e5fe97a..67f187d9c2 100644 --- a/src/applications/repository/storage/PhabricatorRepositoryCommit.php +++ b/src/applications/repository/storage/PhabricatorRepositoryCommit.php @@ -13,7 +13,8 @@ final class PhabricatorRepositoryCommit HarbormasterCircleCIBuildableInterface, PhabricatorCustomFieldInterface, PhabricatorApplicationTransactionInterface, - PhabricatorFulltextInterface { + PhabricatorFulltextInterface, + PhabricatorConduitResultInterface { protected $repositoryID; protected $phid; @@ -580,4 +581,26 @@ final class PhabricatorRepositoryCommit return new DiffusionCommitFulltextEngine(); } + +/* -( PhabricatorConduitResultInterface )---------------------------------- */ + + public function getFieldSpecificationsForConduit() { + return array( + id(new PhabricatorConduitSearchFieldSpecification()) + ->setKey('identifier') + ->setType('string') + ->setDescription(pht('The commit identifier.')), + ); + } + + public function getFieldValuesForConduit() { + return array( + 'identifier' => $this->getCommitIdentifier(), + ); + } + + public function getConduitSearchAttachments() { + return array(); + } + } -- 2.51.2