mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-05 20:31:03 +01:00
5a2213ef82
Summary: Depends on D19150. Ref T13088. Allow clients to retrieve information about build logs, including log data, over the API. (To fetch log data, take the `filePHID` to `file.search`, then issue a normal GET against the URI. Use a `Content-Range` header to get part of the log.) Test Plan: Ran `harbormaster.log.search`, got sensible-looking results. Subscribers: PHID-OPKG-gm6ozazyms6q6i22gyam Maniphest Tasks: T13088 Differential Revision: https://secure.phabricator.com/D19151
79 lines
1.8 KiB
PHP
79 lines
1.8 KiB
PHP
<?php
|
|
|
|
final class HarbormasterBuildLogSearchEngine
|
|
extends PhabricatorApplicationSearchEngine {
|
|
|
|
public function getResultTypeDescription() {
|
|
return pht('Harbormaster Build Logs');
|
|
}
|
|
|
|
public function getApplicationClassName() {
|
|
return 'PhabricatorHarbormasterApplication';
|
|
}
|
|
|
|
public function newQuery() {
|
|
return new HarbormasterBuildLogQuery();
|
|
}
|
|
|
|
protected function buildCustomSearchFields() {
|
|
return array(
|
|
id(new PhabricatorPHIDsSearchField())
|
|
->setLabel(pht('Build Targets'))
|
|
->setKey('buildTargetPHIDs')
|
|
->setAliases(
|
|
array(
|
|
'buildTargetPHID',
|
|
'buildTargets',
|
|
'buildTarget',
|
|
'targetPHIDs',
|
|
'targetPHID',
|
|
'targets',
|
|
'target',
|
|
))
|
|
->setDescription(
|
|
pht('Search for logs that belong to a particular build target.')),
|
|
);
|
|
}
|
|
|
|
protected function buildQueryFromParameters(array $map) {
|
|
$query = $this->newQuery();
|
|
|
|
if ($map['buildTargetPHIDs']) {
|
|
$query->withBuildTargetPHIDs($map['buildTargetPHIDs']);
|
|
}
|
|
|
|
return $query;
|
|
}
|
|
|
|
protected function getURI($path) {
|
|
return '/harbormaster/log/'.$path;
|
|
}
|
|
|
|
protected function getBuiltinQueryNames() {
|
|
return array(
|
|
'all' => pht('All Builds'),
|
|
);
|
|
}
|
|
|
|
public function buildSavedQueryFromBuiltin($query_key) {
|
|
$query = $this->newSavedQuery();
|
|
$query->setQueryKey($query_key);
|
|
|
|
switch ($query_key) {
|
|
case 'all':
|
|
return $query;
|
|
}
|
|
|
|
return parent::buildSavedQueryFromBuiltin($query_key);
|
|
}
|
|
|
|
protected function renderResultList(
|
|
array $builds,
|
|
PhabricatorSavedQuery $query,
|
|
array $handles) {
|
|
|
|
// For now, this SearchEngine is only for driving the API.
|
|
throw new PhutilMethodNotImplementedException();
|
|
}
|
|
|
|
}
|