Path: blob/master/src/applications/harbormaster/application/PhabricatorHarbormasterApplication.php
12256 views
<?php12final class PhabricatorHarbormasterApplication extends PhabricatorApplication {34public function getBaseURI() {5return '/harbormaster/';6}78public function getName() {9return pht('Harbormaster');10}1112public function getShortDescription() {13return pht('Build/CI');14}1516public function getIcon() {17return 'fa-ship';18}1920public function getTitleGlyph() {21return "\xE2\x99\xBB";22}2324public function getFlavorText() {25return pht('Ship Some Freight');26}2728public function getApplicationGroup() {29return self::GROUP_UTILITIES;30}3132public function getEventListeners() {33return array(34new HarbormasterUIEventListener(),35);36}3738public function getRemarkupRules() {39return array(40new HarbormasterRemarkupRule(),41);42}4344public function getHelpDocumentationArticles(PhabricatorUser $viewer) {45return array(46array(47'name' => pht('Harbormaster User Guide'),48'href' => PhabricatorEnv::getDoclink('Harbormaster User Guide'),49),50);51}5253public function getRoutes() {54return array(55'/B(?P<id>[1-9]\d*)' => 'HarbormasterBuildableViewController',56'/harbormaster/' => array(57'(?:query/(?P<queryKey>[^/]+)/)?'58=> 'HarbormasterBuildableListController',59'step/' => array(60'add/(?:(?P<id>\d+)/)?' => 'HarbormasterStepAddController',61'new/(?P<plan>\d+)/(?P<class>[^/]+)/'62=> 'HarbormasterStepEditController',63'view/(?P<id>\d+)/' => 'HarbormasterStepViewController',64'edit/(?:(?P<id>\d+)/)?' => 'HarbormasterStepEditController',65'delete/(?:(?P<id>\d+)/)?' => 'HarbormasterStepDeleteController',66),67'buildable/' => array(68'(?P<id>\d+)/(?P<action>pause|resume|restart|abort)/'69=> 'HarbormasterBuildableActionController',70),71'build/' => array(72$this->getQueryRoutePattern() => 'HarbormasterBuildListController',73'(?P<id>\d+)/(?:(?P<generation>\d+)/)?'74=> 'HarbormasterBuildViewController',75'(?P<action>pause|resume|restart|abort)/'.76'(?P<id>\d+)/(?:(?P<via>[^/]+)/)?'77=> 'HarbormasterBuildActionController',78),79'plan/' => array(80$this->getQueryRoutePattern() => 'HarbormasterPlanListController',81$this->getEditRoutePattern('edit/')82=> 'HarbormasterPlanEditController',83'disable/(?P<id>\d+)/' => 'HarbormasterPlanDisableController',84'behavior/(?P<id>\d+)/(?P<behaviorKey>[^/]+)/' =>85'HarbormasterPlanBehaviorController',86'run/(?P<id>\d+)/' => 'HarbormasterPlanRunController',87'(?P<id>\d+)/' => 'HarbormasterPlanViewController',88),89'unit/' => array(90'(?P<id>\d+)/' => 'HarbormasterUnitMessageListController',91'view/(?P<id>\d+)/' => 'HarbormasterUnitMessageViewController',92),93'lint/' => array(94'(?P<id>\d+)/' => 'HarbormasterLintMessagesController',95),96'hook/' => array(97'circleci/' => 'HarbormasterCircleCIHookController',98'buildkite/' => 'HarbormasterBuildkiteHookController',99),100'log/' => array(101'view/(?P<id>\d+)/(?:\$(?P<lines>\d+(?:-\d+)?))?'102=> 'HarbormasterBuildLogViewController',103'render/(?P<id>\d+)/(?:\$(?P<lines>\d+(?:-\d+)?))?'104=> 'HarbormasterBuildLogRenderController',105'download/(?P<id>\d+)/' => 'HarbormasterBuildLogDownloadController',106),107),108);109}110111protected function getCustomCapabilities() {112return array(113HarbormasterCreatePlansCapability::CAPABILITY => array(114'default' => PhabricatorPolicies::POLICY_ADMIN,115),116HarbormasterBuildPlanDefaultViewCapability::CAPABILITY => array(117'template' => HarbormasterBuildPlanPHIDType::TYPECONST,118'capability' => PhabricatorPolicyCapability::CAN_VIEW,119),120HarbormasterBuildPlanDefaultEditCapability::CAPABILITY => array(121'template' => HarbormasterBuildPlanPHIDType::TYPECONST,122'capability' => PhabricatorPolicyCapability::CAN_EDIT,123'default' => PhabricatorPolicies::POLICY_ADMIN,124),125);126}127128}129130131