forked from phacility/phabricator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDiffusionCommitFulltextEngine.php
59 lines (47 loc) · 1.68 KB
/
DiffusionCommitFulltextEngine.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
final class DiffusionCommitFulltextEngine
extends PhabricatorFulltextEngine {
protected function buildAbstractDocument(
PhabricatorSearchAbstractDocument $document,
$object) {
$commit = id(new DiffusionCommitQuery())
->setViewer($this->getViewer())
->withPHIDs(array($object->getPHID()))
->needCommitData(true)
->executeOne();
$repository = $commit->getRepository();
$commit_data = $commit->getCommitData();
$date_created = $commit->getEpoch();
$commit_message = $commit_data->getCommitMessage();
$author_phid = $commit_data->getCommitDetail('authorPHID');
$monogram = $commit->getMonogram();
$summary = $commit_data->getSummary();
$title = "{$monogram} {$summary}";
$document
->setDocumentCreated($date_created)
->setDocumentModified($date_created)
->setDocumentTitle($title);
$document->addField(
PhabricatorSearchDocumentFieldType::FIELD_BODY,
$commit_message);
if ($author_phid) {
$document->addRelationship(
PhabricatorSearchRelationship::RELATIONSHIP_AUTHOR,
$author_phid,
PhabricatorPeopleUserPHIDType::TYPECONST,
$date_created);
}
$document->addRelationship(
PhabricatorSearchRelationship::RELATIONSHIP_REPOSITORY,
$repository->getPHID(),
PhabricatorRepositoryRepositoryPHIDType::TYPECONST,
$date_created);
$document->addRelationship(
$commit->isUnreachable()
? PhabricatorSearchRelationship::RELATIONSHIP_CLOSED
: PhabricatorSearchRelationship::RELATIONSHIP_OPEN,
$commit->getPHID(),
PhabricatorRepositoryCommitPHIDType::TYPECONST,
PhabricatorTime::getNow());
}
}