Changeset View
Changeset View
Standalone View
Standalone View
src/applications/herald/adapter/HeraldCommitAdapter.php
Show First 20 Lines • Show All 58 Lines • ▼ Show 20 Lines | switch ($rule_type) { | ||||
return false; | return false; | ||||
} | } | ||||
} | } | ||||
public function canTriggerOnObject($object) { | public function canTriggerOnObject($object) { | ||||
if ($object instanceof PhabricatorRepository) { | if ($object instanceof PhabricatorRepository) { | ||||
return true; | return true; | ||||
} | } | ||||
if ($object instanceof PhabricatorProject) { | |||||
return true; | |||||
} | |||||
return false; | return false; | ||||
} | } | ||||
public function getTriggerObjectPHIDs() { | public function getTriggerObjectPHIDs() { | ||||
return array( | return array_merge( | ||||
array( | |||||
$this->repository->getPHID(), | $this->repository->getPHID(), | ||||
$this->getPHID(), | $this->getPHID(), | ||||
); | ), | ||||
$this->repository->getProjectPHIDs()); | |||||
} | } | ||||
public function explainValidTriggerObjects() { | public function explainValidTriggerObjects() { | ||||
return pht( | return pht( | ||||
'This rule can trigger for **repositories**.'); | 'This rule can trigger for **repositories** and **projects**.'); | ||||
} | } | ||||
public function getFieldNameMap() { | public function getFieldNameMap() { | ||||
return array( | return array( | ||||
self::FIELD_NEED_AUDIT_FOR_PACKAGE => | self::FIELD_NEED_AUDIT_FOR_PACKAGE => | ||||
pht('Affected packages that need audit'), | pht('Affected packages that need audit'), | ||||
self::FIELD_REPOSITORY_AUTOCLOSE_BRANCH => pht('On autoclose branch'), | self::FIELD_REPOSITORY_AUTOCLOSE_BRANCH => pht('On autoclose branch'), | ||||
) + parent::getFieldNameMap(); | ) + parent::getFieldNameMap(); | ||||
} | } | ||||
public function getFields() { | public function getFields() { | ||||
return array_merge( | return array_merge( | ||||
array( | array( | ||||
self::FIELD_BODY, | self::FIELD_BODY, | ||||
self::FIELD_AUTHOR, | self::FIELD_AUTHOR, | ||||
self::FIELD_COMMITTER, | self::FIELD_COMMITTER, | ||||
self::FIELD_REVIEWER, | self::FIELD_REVIEWER, | ||||
self::FIELD_REPOSITORY, | self::FIELD_REPOSITORY, | ||||
self::FIELD_REPOSITORY_PROJECTS, | |||||
self::FIELD_DIFF_FILE, | self::FIELD_DIFF_FILE, | ||||
self::FIELD_DIFF_CONTENT, | self::FIELD_DIFF_CONTENT, | ||||
self::FIELD_DIFF_ADDED_CONTENT, | self::FIELD_DIFF_ADDED_CONTENT, | ||||
self::FIELD_DIFF_REMOVED_CONTENT, | self::FIELD_DIFF_REMOVED_CONTENT, | ||||
self::FIELD_DIFF_ENORMOUS, | self::FIELD_DIFF_ENORMOUS, | ||||
self::FIELD_RULE, | self::FIELD_RULE, | ||||
self::FIELD_AFFECTED_PACKAGE, | self::FIELD_AFFECTED_PACKAGE, | ||||
self::FIELD_AFFECTED_PACKAGE_OWNER, | self::FIELD_AFFECTED_PACKAGE_OWNER, | ||||
▲ Show 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | public static function newLegacyAdapter( | ||||
$object->repository = $repository; | $object->repository = $repository; | ||||
$object->commit = $commit; | $object->commit = $commit; | ||||
$object->commitData = $commit_data; | $object->commitData = $commit_data; | ||||
return $object; | return $object; | ||||
} | } | ||||
public function setCommit(PhabricatorRepositoryCommit $commit) { | |||||
$viewer = PhabricatorUser::getOmnipotentUser(); | |||||
$repository = id(new PhabricatorRepositoryQuery()) | |||||
->setViewer($viewer) | |||||
->withIDs(array($commit->getRepositoryID())) | |||||
->needProjectPHIDs(true) | |||||
->executeOne(); | |||||
if (!$repository) { | |||||
throw new Exception(pht('Unable to load repository!')); | |||||
} | |||||
$data = id(new PhabricatorRepositoryCommitData())->loadOneWhere( | |||||
'commitID = %d', | |||||
$commit->getID()); | |||||
if (!$data) { | |||||
throw new Exception(pht('Unable to load commit data!')); | |||||
} | |||||
$this->commit = clone $commit; | |||||
$this->commit->attachRepository($repository); | |||||
$this->commit->attachCommitData($data); | |||||
$this->repository = $repository; | |||||
$this->commitData = $data; | |||||
return $this; | |||||
} | |||||
public function getPHID() { | public function getPHID() { | ||||
return $this->commit->getPHID(); | return $this->commit->getPHID(); | ||||
} | } | ||||
public function getEmailPHIDs() { | public function getEmailPHIDs() { | ||||
return array_keys($this->emailPHIDs); | return array_keys($this->emailPHIDs); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 182 Lines • ▼ Show 20 Lines | switch ($field) { | ||||
case self::FIELD_COMMITTER: | case self::FIELD_COMMITTER: | ||||
return $data->getCommitDetail('committerPHID'); | return $data->getCommitDetail('committerPHID'); | ||||
case self::FIELD_REVIEWER: | case self::FIELD_REVIEWER: | ||||
return $data->getCommitDetail('reviewerPHID'); | return $data->getCommitDetail('reviewerPHID'); | ||||
case self::FIELD_DIFF_FILE: | case self::FIELD_DIFF_FILE: | ||||
return $this->loadAffectedPaths(); | return $this->loadAffectedPaths(); | ||||
case self::FIELD_REPOSITORY: | case self::FIELD_REPOSITORY: | ||||
return $this->repository->getPHID(); | return $this->repository->getPHID(); | ||||
case self::FIELD_REPOSITORY_PROJECTS: | |||||
return $this->repository->getProjectPHIDs(); | |||||
case self::FIELD_DIFF_CONTENT: | case self::FIELD_DIFF_CONTENT: | ||||
return $this->getDiffContent('*'); | return $this->getDiffContent('*'); | ||||
case self::FIELD_DIFF_ADDED_CONTENT: | case self::FIELD_DIFF_ADDED_CONTENT: | ||||
return $this->getDiffContent('+'); | return $this->getDiffContent('+'); | ||||
case self::FIELD_DIFF_REMOVED_CONTENT: | case self::FIELD_DIFF_REMOVED_CONTENT: | ||||
return $this->getDiffContent('-'); | return $this->getDiffContent('-'); | ||||
case self::FIELD_DIFF_ENORMOUS: | case self::FIELD_DIFF_ENORMOUS: | ||||
$this->getDiffContent('*'); | $this->getDiffContent('*'); | ||||
▲ Show 20 Lines • Show All 117 Lines • Show Last 20 Lines |