public function applyPlan(HarbormasterBuildPlan $plan, array $parameters, $initiator_phid)
 {
     $viewer = PhabricatorUser::getOmnipotentUser();
     $build = HarbormasterBuild::initializeNewBuild($viewer)->setBuildablePHID($this->getPHID())->setBuildPlanPHID($plan->getPHID())->setBuildParameters($parameters)->setBuildStatus(HarbormasterBuildStatus::STATUS_PENDING);
     if ($initiator_phid) {
         $build->setInitiatorPHID($initiator_phid);
     }
     $auto_key = $plan->getPlanAutoKey();
     if ($auto_key) {
         $build->setPlanAutoKey($auto_key);
     }
     $build->save();
     PhabricatorWorker::scheduleTask('HarbormasterBuildWorker', array('buildID' => $build->getID()), array('objectPHID' => $build->getPHID()));
     return $build;
 }