mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-20 13:52:40 +01:00
Read synthetic inline comments from Harbormaster
Summary: Ref T8096. These are still reading out of the old diff property, but should read from Harbormaster instead. Test Plan: {F698346} Reviewers: chad Reviewed By: chad Maniphest Tasks: T8096 Differential Revision: https://secure.phabricator.com/D13847
This commit is contained in:
parent
c2c8b00c5c
commit
2b13da88ce
1 changed files with 59 additions and 19 deletions
|
@ -203,6 +203,29 @@ final class DifferentialChangesetViewController extends DifferentialController {
|
||||||
$inlines = array();
|
$inlines = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($left_new || $right_new) {
|
||||||
|
$diff_map = array();
|
||||||
|
if ($left) {
|
||||||
|
$diff_map[] = $left->getDiff();
|
||||||
|
}
|
||||||
|
if ($right) {
|
||||||
|
$diff_map[] = $right->getDiff();
|
||||||
|
}
|
||||||
|
$diff_map = mpull($diff_map, null, 'getPHID');
|
||||||
|
|
||||||
|
$buildables = id(new HarbormasterBuildableQuery())
|
||||||
|
->setViewer($viewer)
|
||||||
|
->withBuildablePHIDs(array_keys($diff_map))
|
||||||
|
->withManualBuildables(false)
|
||||||
|
->needBuilds(true)
|
||||||
|
->needTargets(true)
|
||||||
|
->execute();
|
||||||
|
$buildables = mpull($buildables, null, 'getBuildablePHID');
|
||||||
|
foreach ($diff_map as $diff_phid => $changeset_diff) {
|
||||||
|
$changeset_diff->attachBuildable(idx($buildables, $diff_phid));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($left_new) {
|
if ($left_new) {
|
||||||
$inlines = array_merge(
|
$inlines = array_merge(
|
||||||
$inlines,
|
$inlines,
|
||||||
|
@ -356,30 +379,47 @@ final class DifferentialChangesetViewController extends DifferentialController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private function buildLintInlineComments($changeset) {
|
private function buildLintInlineComments($changeset) {
|
||||||
$lint = id(new DifferentialDiffProperty())->loadOneWhere(
|
$diff = $changeset->getDiff();
|
||||||
'diffID = %d AND name = %s',
|
|
||||||
$changeset->getDiffID(),
|
$buildable = $diff->getBuildable();
|
||||||
'arc:lint');
|
if (!$buildable) {
|
||||||
if (!$lint) {
|
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
$lint = $lint->getData();
|
|
||||||
|
$target_phids = array();
|
||||||
|
foreach ($buildable->getBuilds() as $build) {
|
||||||
|
foreach ($build->getBuildTargets() as $target) {
|
||||||
|
$target_phids[] = $target->getPHID();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$target_phids) {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$messages = id(new HarbormasterBuildLintMessage())->loadAllWhere(
|
||||||
|
'buildTargetPHID IN (%Ls) AND path = %s',
|
||||||
|
$target_phids,
|
||||||
|
$changeset->getFilename());
|
||||||
|
|
||||||
|
if (!$messages) {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$template = id(new DifferentialInlineComment())
|
||||||
|
->setChangesetID($changeset->getID())
|
||||||
|
->setIsNewFile(1)
|
||||||
|
->setLineLength(0);
|
||||||
|
|
||||||
$inlines = array();
|
$inlines = array();
|
||||||
foreach ($lint as $msg) {
|
foreach ($messages as $message) {
|
||||||
if ($msg['path'] != $changeset->getFilename()) {
|
$description = $message->getProperty('description');
|
||||||
continue;
|
$description = '%%%'.$description.'%%%';
|
||||||
}
|
|
||||||
$inline = new DifferentialInlineComment();
|
|
||||||
$inline->setChangesetID($changeset->getID());
|
|
||||||
$inline->setIsNewFile(1);
|
|
||||||
$inline->setSyntheticAuthor(pht('Lint: %s', $msg['name']));
|
|
||||||
$inline->setLineNumber($msg['line']);
|
|
||||||
$inline->setLineLength(0);
|
|
||||||
|
|
||||||
$inline->setContent('%%%'.$msg['description'].'%%%');
|
$inlines[] = id(clone $template)
|
||||||
|
->setSyntheticAuthor(pht('Lint: %s', $message->getName()))
|
||||||
$inlines[] = $inline;
|
->setLineNumber($message->getLine())
|
||||||
|
->setContent($description);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $inlines;
|
return $inlines;
|
||||||
|
|
Loading…
Reference in a new issue