diff --git a/src/land/engine/ArcanistLandEngine.php b/src/land/engine/ArcanistLandEngine.php --- a/src/land/engine/ArcanistLandEngine.php +++ b/src/land/engine/ArcanistLandEngine.php @@ -635,7 +635,7 @@ if (!isset($build_map[$revision_phid])) { $build_map[$revision_phid] = array( - 'revisionRef' => $revision_phid, + 'revisionRef' => $revision_ref, 'buildRefs' => array(), ); } @@ -666,14 +666,14 @@ } echo tsprintf( - "%!\n%s\n\n", + "%!\n%s\n", pht('BUILD FAILURES'), $message); $prompt_key = 'arc.land.failed-builds'; } else if ($has_ongoing) { echo tsprintf( - "%!\n%s\n\n", + "%!\n%s\n", pht('ONGOING BUILDS'), pht( '%s revision(s) have ongoing builds:', @@ -700,15 +700,20 @@ } echo tsprintf( - "\n%s\n\n", + "\n%s\n", pht('You can review build details here:')); // TODO: Only show buildables with problem builds. + $workflow = $this->getWorkflow(); + foreach ($buildable_refs as $buildable) { $display_ref = $buildable->newDisplayRef(); - // TODO: Include URI here. + $raw_uri = $buildable->getURI(); + $raw_uri = $workflow->getAbsoluteURI($raw_uri); + + $display_ref->setURI($raw_uri); echo tsprintf('%s', $display_ref); } @@ -909,7 +914,7 @@ pht( 'TODO: You are forcing a revision, but commits are associated '. 'with some other revision. Are you REALLY sure you want to land '. - 'ALL these commits wiht a different unrelated revision???')); + 'ALL these commits with a different unrelated revision???')); } foreach ($confirm_force as $commit) { diff --git a/src/ref/build/ArcanistBuildBuildplanHardpointQuery.php b/src/ref/build/ArcanistBuildBuildplanHardpointQuery.php --- a/src/ref/build/ArcanistBuildBuildplanHardpointQuery.php +++ b/src/ref/build/ArcanistBuildBuildplanHardpointQuery.php @@ -29,7 +29,7 @@ $plan_ref = ArcanistBuildPlanRef::newFromConduit($plan); $plan_refs[] = $plan_ref; } - $plan_refs = mpull($plan_refs, 'getPHID'); + $plan_refs = mpull($plan_refs, null, 'getPHID'); $results = array(); foreach ($refs as $key => $build_ref) { diff --git a/src/ref/buildable/ArcanistBuildableRef.php b/src/ref/buildable/ArcanistBuildableRef.php --- a/src/ref/buildable/ArcanistBuildableRef.php +++ b/src/ref/buildable/ArcanistBuildableRef.php @@ -36,10 +36,6 @@ return idx($this->parameters, 'phid'); } - public function getName() { - return idxv($this->parameters, array('fields', 'name')); - } - public function getObjectPHID() { return idxv($this->parameters, array('fields', 'objectPHID')); } @@ -53,11 +49,21 @@ } public function getDisplayRefTitle() { - return $this->getName(); + return pht('Buildable %d', $this->getID()); } public function getBuildRefs() { return $this->getHardpoint(self::HARDPOINT_BUILDREFS); } + public function getURI() { + $uri = idxv($this->parameters, array('fields', 'uri')); + + if ($uri === null) { + $uri = '/'.$this->getMonogram(); + } + + return $uri; + } + } diff --git a/src/workflow/ArcanistWorkflow.php b/src/workflow/ArcanistWorkflow.php --- a/src/workflow/ArcanistWorkflow.php +++ b/src/workflow/ArcanistWorkflow.php @@ -2434,7 +2434,7 @@ return $stdin->read(); } - protected function getAbsoluteURI($raw_uri) { + final public function getAbsoluteURI($raw_uri) { // TODO: "ArcanistRevisionRef", at least, may return a relative URI. // If we get a relative URI, guess the correct absolute URI based on // the Conduit URI. This might not be correct for Conduit over SSH.