diff --git a/src/applications/differential/conduit/DifferentialCreateDiffConduitAPIMethod.php b/src/applications/differential/conduit/DifferentialCreateDiffConduitAPIMethod.php --- a/src/applications/differential/conduit/DifferentialCreateDiffConduitAPIMethod.php +++ b/src/applications/differential/conduit/DifferentialCreateDiffConduitAPIMethod.php @@ -160,7 +160,8 @@ return array( 'diffid' => $diff->getID(), - 'uri' => $uri, + 'phid' => $diff->getPHID(), + 'uri' => $uri, ); } diff --git a/src/applications/harbormaster/conduit/HarbormasterSendMessageConduitAPIMethod.php b/src/applications/harbormaster/conduit/HarbormasterSendMessageConduitAPIMethod.php --- a/src/applications/harbormaster/conduit/HarbormasterSendMessageConduitAPIMethod.php +++ b/src/applications/harbormaster/conduit/HarbormasterSendMessageConduitAPIMethod.php @@ -18,7 +18,9 @@ return array( 'buildTargetPHID' => 'required phid', - 'type' => 'required '.$type_const, + 'lint' => 'optional list', + 'unit' => 'optional list', + 'type' => 'required '.$type_const, ); } @@ -40,10 +42,31 @@ throw new Exception(pht('No such build target!')); } - $message = HarbormasterBuildMessage::initializeNewMessage($viewer) + $save = array(); + + $lint_messages = $request->getValue('lint', array()); + foreach ($lint_messages as $lint) { + $save[] = HarbormasterBuildLintMessage::newFromDictionary( + $build_target, + $lint); + } + + $unit_messages = $request->getValue('unit', array()); + foreach ($unit_messages as $unit) { + $save[] = HarbormasterBuildUnitMessage::newFromDictionary( + $build_target, + $unit); + } + + $save[] = HarbormasterBuildMessage::initializeNewMessage($viewer) ->setBuildTargetPHID($build_target->getPHID()) - ->setType($message_type) - ->save(); + ->setType($message_type); + + $build_target->openTransaction(); + foreach ($save as $object) { + $object->save(); + } + $build_target->saveTransaction(); // If the build has completely paused because all steps are blocked on // waiting targets, this will resume it. diff --git a/src/applications/harbormaster/controller/HarbormasterBuildableViewController.php b/src/applications/harbormaster/controller/HarbormasterBuildableViewController.php --- a/src/applications/harbormaster/controller/HarbormasterBuildableViewController.php +++ b/src/applications/harbormaster/controller/HarbormasterBuildableViewController.php @@ -248,7 +248,13 @@ $build_list->addItem($item); } - return $build_list; + $build_list->setFlush(true); + + $box = id(new PHUIObjectBoxView()) + ->setHeaderText(pht('Builds')) + ->appendChild($build_list); + + return $box; } }