Path: blob/master/src/applications/harbormaster/artifact/HarbormasterFileArtifact.php
12256 views
<?php12final class HarbormasterFileArtifact extends HarbormasterArtifact {34const ARTIFACTCONST = 'file';56public function getArtifactTypeName() {7return pht('File');8}910public function getArtifactTypeDescription() {11return pht(12'Stores a reference to file data.');13}1415public function getArtifactParameterSpecification() {16return array(17'filePHID' => 'string',18);19}2021public function getArtifactParameterDescriptions() {22return array(23'filePHID' => pht('File to create an artifact from.'),24);25}2627public function getArtifactDataExample() {28return array(29'filePHID' => 'PHID-FILE-abcdefghijklmnopqrst',30);31}3233public function renderArtifactSummary(PhabricatorUser $viewer) {34$artifact = $this->getBuildArtifact();35$file_phid = $artifact->getProperty('filePHID');36return $viewer->renderHandle($file_phid);37}3839public function willCreateArtifact(PhabricatorUser $actor) {40// NOTE: This is primarily making sure the actor has permission to view the41// file. We don't want to let you run builds using files you don't have42// permission to see, since this could let you violate permissions.43$this->loadArtifactFile($actor);44}4546public function loadArtifactFile(PhabricatorUser $viewer) {47$artifact = $this->getBuildArtifact();48$file_phid = $artifact->getProperty('filePHID');4950$file = id(new PhabricatorFileQuery())51->setViewer($viewer)52->withPHIDs(array($file_phid))53->executeOne();54if (!$file) {55throw new Exception(56pht(57'File PHID "%s" does not correspond to a valid file.',58$file_phid));59}6061return $file;62}6364}656667