@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at recaptime-dev/main 89 lines 2.2 kB view raw
1<?php 2 3/** 4 * A message sent to an executing build target by an external system. We 5 * capture these messages and process them asynchronously to avoid race 6 * conditions where we receive a message before a build plan is ready to 7 * accept it. 8 */ 9final class HarbormasterBuildMessage 10 extends HarbormasterDAO 11 implements 12 PhabricatorPolicyInterface, 13 PhabricatorDestructibleInterface { 14 15 protected $authorPHID; 16 protected $receiverPHID; 17 protected $type; 18 protected $isConsumed; 19 20 private $receiver = self::ATTACHABLE; 21 22 public static function initializeNewMessage(PhabricatorUser $actor) { 23 $actor_phid = $actor->getPHID(); 24 if (!$actor_phid) { 25 $actor_phid = id(new PhabricatorHarbormasterApplication())->getPHID(); 26 } 27 28 return id(new HarbormasterBuildMessage()) 29 ->setAuthorPHID($actor_phid) 30 ->setIsConsumed(0); 31 } 32 33 protected function getConfiguration() { 34 return array( 35 self::CONFIG_COLUMN_SCHEMA => array( 36 'type' => 'text16', 37 'isConsumed' => 'bool', 38 ), 39 self::CONFIG_KEY_SCHEMA => array( 40 'key_receiver' => array( 41 'columns' => array('receiverPHID'), 42 ), 43 ), 44 ) + parent::getConfiguration(); 45 } 46 47 public function getReceiver() { 48 return $this->assertAttached($this->receiver); 49 } 50 51 public function attachReceiver($receiver) { 52 $this->receiver = $receiver; 53 return $this; 54 } 55 56 57/* -( PhabricatorPolicyInterface )----------------------------------------- */ 58 59 60 public function getCapabilities() { 61 return array( 62 PhabricatorPolicyCapability::CAN_VIEW, 63 ); 64 } 65 66 public function getPolicy($capability) { 67 return $this->getReceiver()->getPolicy($capability); 68 } 69 70 public function hasAutomaticCapability($capability, PhabricatorUser $viewer) { 71 return $this->getReceiver()->hasAutomaticCapability( 72 $capability, 73 $viewer); 74 } 75 76 public function describeAutomaticCapability($capability) { 77 return pht('Build messages have the same policies as their receivers.'); 78 } 79 80 81/* -( PhabricatorDestructibleInterface )----------------------------------- */ 82 83 84 public function destroyObjectPermanently( 85 PhabricatorDestructionEngine $engine) { 86 $this->delete(); 87 } 88 89}