Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-07-20 15:26:25 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-07-20 15:26:25 +0300
commita09983ae35713f5a2bbb100981116d31ce99826e (patch)
tree2ee2af7bd104d57086db360a7e6d8c9d5d43667a /app/helpers/operations_helper.rb
parent18c5ab32b738c0b6ecb4d0df3994000482f34bd8 (diff)
Add latest changes from gitlab-org/gitlab@13-2-stable-ee
Diffstat (limited to 'app/helpers/operations_helper.rb')
-rw-r--r--app/helpers/operations_helper.rb54
1 files changed, 54 insertions, 0 deletions
diff --git a/app/helpers/operations_helper.rb b/app/helpers/operations_helper.rb
new file mode 100644
index 00000000000..3444773fe88
--- /dev/null
+++ b/app/helpers/operations_helper.rb
@@ -0,0 +1,54 @@
+# frozen_string_literal: true
+
+module OperationsHelper
+ include Gitlab::Utils::StrongMemoize
+
+ def prometheus_service
+ strong_memoize(:prometheus_service) do
+ @project.find_or_initialize_service(::PrometheusService.to_param)
+ end
+ end
+
+ def alerts_service
+ strong_memoize(:alerts_service) do
+ @project.find_or_initialize_service(::AlertsService.to_param)
+ end
+ end
+
+ def alerts_settings_data(disabled: false)
+ {
+ 'prometheus_activated' => prometheus_service.manual_configuration?.to_s,
+ 'activated' => alerts_service.activated?.to_s,
+ 'prometheus_form_path' => scoped_integration_path(prometheus_service),
+ 'form_path' => scoped_integration_path(alerts_service),
+ 'prometheus_reset_key_path' => reset_alerting_token_project_settings_operations_path(@project),
+ 'prometheus_authorization_key' => @project.alerting_setting&.token,
+ 'prometheus_api_url' => prometheus_service.api_url,
+ 'authorization_key' => alerts_service.token,
+ 'prometheus_url' => notify_project_prometheus_alerts_url(@project, format: :json),
+ 'url' => alerts_service.url,
+ 'alerts_setup_url' => help_page_path('user/project/integrations/generic_alerts.md', anchor: 'setting-up-generic-alerts'),
+ 'alerts_usage_url' => project_alert_management_index_path(@project),
+ 'disabled' => disabled.to_s
+ }
+ end
+
+ def operations_settings_data
+ setting = project_incident_management_setting
+ templates = setting.available_issue_templates.map { |t| { key: t.key, name: t.name } }
+
+ {
+ operations_settings_endpoint: project_settings_operations_path(@project),
+ templates: templates.to_json,
+ create_issue: setting.create_issue.to_s,
+ issue_template_key: setting.issue_template_key.to_s,
+ send_email: setting.send_email.to_s,
+ pagerduty_active: setting.pagerduty_active.to_s,
+ pagerduty_token: setting.pagerduty_token.to_s,
+ pagerduty_webhook_url: project_incidents_pagerduty_url(@project, token: setting.pagerduty_token),
+ pagerduty_reset_key_path: reset_pagerduty_token_project_settings_operations_path(@project)
+ }
+ end
+end
+
+OperationsHelper.prepend_if_ee('EE::OperationsHelper')