diff --git a/src/applications/harbormaster/controller/HarbormasterBuildableEditController.php b/src/applications/harbormaster/controller/HarbormasterBuildableEditController.php index a95e831a97..1bfdf59934 100644 --- a/src/applications/harbormaster/controller/HarbormasterBuildableEditController.php +++ b/src/applications/harbormaster/controller/HarbormasterBuildableEditController.php @@ -42,8 +42,11 @@ final class HarbormasterBuildableEditController ->executeOne(); if ($object instanceof DifferentialRevision) { - throw new Exception( - "TODO: We need to assign PHIDs to diffs before this will work."); + $revision = $object; + $object = $object->loadActiveDiff(); + $buildable + ->setBuildablePHID($object->getPHID()) + ->setContainerPHID($revision->getPHID()); } else if ($object instanceof PhabricatorRepositoryCommit) { $buildable ->setBuildablePHID($object->getPHID()) diff --git a/src/applications/harbormaster/controller/HarbormasterPlanEditController.php b/src/applications/harbormaster/controller/HarbormasterPlanEditController.php index 03fd378147..bc58d4eefe 100644 --- a/src/applications/harbormaster/controller/HarbormasterPlanEditController.php +++ b/src/applications/harbormaster/controller/HarbormasterPlanEditController.php @@ -68,7 +68,7 @@ final class HarbormasterPlanEditController $id = $plan->getID(); $title = pht('Edit Build Plan'); - $cancel_uri = "/B{$id}"; + $cancel_uri = $this->getApplicationURI('plan/'.$plan->getID().'/'); $save_button = pht('Save Build Plan'); } diff --git a/src/applications/harbormaster/step/VariableBuildStepImplementation.php b/src/applications/harbormaster/step/VariableBuildStepImplementation.php index dfd85ee6fe..c81983d631 100644 --- a/src/applications/harbormaster/step/VariableBuildStepImplementation.php +++ b/src/applications/harbormaster/step/VariableBuildStepImplementation.php @@ -4,6 +4,7 @@ abstract class VariableBuildStepImplementation extends BuildStepImplementation { public function retrieveVariablesFromBuild(HarbormasterBuild $build) { $results = array( + 'buildable.diff' => null, 'buildable.revision' => null, 'buildable.commit' => null, 'repository.callsign' => null, @@ -17,6 +18,7 @@ abstract class VariableBuildStepImplementation extends BuildStepImplementation { $repo = null; if ($object instanceof DifferentialDiff) { + $results['buildable.diff'] = $object->getID(); $revision = $object->getRevision(); $results['buildable.revision'] = $revision->getID(); $repo = $revision->getRepository(); @@ -72,6 +74,8 @@ abstract class VariableBuildStepImplementation extends BuildStepImplementation { public function getAvailableVariables() { return array( + 'buildable.diff' => + pht('The differential diff ID, if applicable.'), 'buildable.revision' => pht('The differential revision ID, if applicable.'), 'buildable.commit' => pht('The commit identifier, if applicable.'),