mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 08:52:39 +01:00
Expose repository ref rules via "diffusion.repository.search"
Summary: Depends on D20425. Ref T13277. See PHI1067. There's currently no way to retrieve branch/ref rules over the API, which makes some management operations against a large number of repositories difficult. Expose these rules to the API. Test Plan: Called `diffusion.repository.search`, got rules in the result set. Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13277 Differential Revision: https://secure.phabricator.com/D20426
This commit is contained in:
parent
7a4ef2bad8
commit
aed755e1d8
1 changed files with 34 additions and 0 deletions
|
@ -2834,10 +2834,24 @@ final class PhabricatorRepository extends PhabricatorRepositoryDAO
|
|||
pht(
|
||||
'The Almanac Service that hosts this repository, if the '.
|
||||
'repository is clustered.')),
|
||||
id(new PhabricatorConduitSearchFieldSpecification())
|
||||
->setKey('refRules')
|
||||
->setType('map<string, list<string>>')
|
||||
->setDescription(
|
||||
pht(
|
||||
'The "Fetch" and "Permanent Ref" rules for this repository.')),
|
||||
);
|
||||
}
|
||||
|
||||
public function getFieldValuesForConduit() {
|
||||
$fetch_rules = $this->getFetchRules();
|
||||
$track_rules = $this->getTrackOnlyRules();
|
||||
$permanent_rules = $this->getAutocloseOnlyRules();
|
||||
|
||||
$fetch_rules = $this->getStringListForConduit($fetch_rules);
|
||||
$track_rules = $this->getStringListForConduit($track_rules);
|
||||
$permanent_rules = $this->getStringListForConduit($permanent_rules);
|
||||
|
||||
return array(
|
||||
'name' => $this->getName(),
|
||||
'vcs' => $this->getVersionControlSystem(),
|
||||
|
@ -2846,9 +2860,29 @@ final class PhabricatorRepository extends PhabricatorRepositoryDAO
|
|||
'status' => $this->getStatus(),
|
||||
'isImporting' => (bool)$this->isImporting(),
|
||||
'almanacServicePHID' => $this->getAlmanacServicePHID(),
|
||||
'refRules' => array(
|
||||
'fetchRules' => $fetch_rules,
|
||||
'trackRules' => $track_rules,
|
||||
'permanentRefRules' => $permanent_rules,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
private function getStringListForConduit($list) {
|
||||
if (!is_array($list)) {
|
||||
$list = array();
|
||||
}
|
||||
|
||||
foreach ($list as $key => $value) {
|
||||
$value = (string)$value;
|
||||
if (!strlen($value)) {
|
||||
unset($list[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
return array_values($list);
|
||||
}
|
||||
|
||||
public function getConduitSearchAttachments() {
|
||||
return array(
|
||||
id(new DiffusionRepositoryURIsSearchEngineAttachment())
|
||||
|
|
Loading…
Reference in a new issue