public function createArtifact(PhabricatorUser $actor, $artifact_key, $artifact_type, array $artifact_data)
 {
     $impl = HarbormasterArtifact::getArtifactType($artifact_type);
     if (!$impl) {
         throw new Exception(pht('There is no implementation available for artifacts of type "%s".', $artifact_type));
     }
     $impl->validateArtifactData($artifact_data);
     $artifact = HarbormasterBuildArtifact::initializeNewBuildArtifact($this)->setArtifactKey($artifact_key)->setArtifactType($artifact_type)->setArtifactData($artifact_data);
     $impl = $artifact->getArtifactImplementation();
     $impl->willCreateArtifact($actor);
     return $artifact->save();
 }
示例#2
0
 public function createArtifact(HarbormasterBuildTarget $build_target, $artifact_key, $artifact_type)
 {
     $artifact = HarbormasterBuildArtifact::initializeNewBuildArtifact($build_target);
     $artifact->setArtifactKey($this->getPHID(), $this->getBuildGeneration(), $artifact_key);
     $artifact->setArtifactType($artifact_type);
     $artifact->save();
     return $artifact;
 }