Page MenuHomePhabricator

D20426.diff
No OneTemporary

D20426.diff

diff --git a/src/applications/repository/storage/PhabricatorRepository.php b/src/applications/repository/storage/PhabricatorRepository.php
--- a/src/applications/repository/storage/PhabricatorRepository.php
+++ b/src/applications/repository/storage/PhabricatorRepository.php
@@ -2834,10 +2834,24 @@
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 @@
'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())

File Metadata

Mime Type
text/plain
Expires
Sat, May 18, 6:53 AM (4 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6274946
Default Alt Text
D20426.diff (1 KB)

Event Timeline