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