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:
Diffstat (limited to 'app/models/project_services/confluence_service.rb')
-rw-r--r--app/models/project_services/confluence_service.rb91
1 files changed, 0 insertions, 91 deletions
diff --git a/app/models/project_services/confluence_service.rb b/app/models/project_services/confluence_service.rb
deleted file mode 100644
index 8a6f4de540c..00000000000
--- a/app/models/project_services/confluence_service.rb
+++ /dev/null
@@ -1,91 +0,0 @@
-# frozen_string_literal: true
-
-class ConfluenceService < Service
- include ActionView::Helpers::UrlHelper
-
- VALID_SCHEME_MATCH = %r{\Ahttps?\Z}.freeze
- VALID_HOST_MATCH = %r{\A.+\.atlassian\.net\Z}.freeze
- VALID_PATH_MATCH = %r{\A/wiki(/|\Z)}.freeze
-
- prop_accessor :confluence_url
-
- validates :confluence_url, presence: true, if: :activated?
- validate :validate_confluence_url_is_cloud, if: :activated?
-
- after_commit :cache_project_has_confluence
-
- def self.to_param
- 'confluence'
- end
-
- def self.supported_events
- %w()
- end
-
- def title
- s_('ConfluenceService|Confluence Workspace')
- end
-
- def description
- s_('ConfluenceService|Connect a Confluence Cloud Workspace to GitLab')
- end
-
- def help
- return unless project&.wiki_enabled?
-
- if activated?
- wiki_url = project.wiki.web_url
-
- s_(
- 'ConfluenceService|Your GitLab Wiki can be accessed here: %{wiki_link}. To re-enable your GitLab Wiki, disable this integration' %
- { wiki_link: link_to(wiki_url, wiki_url) }
- ).html_safe
- else
- s_('ConfluenceService|Enabling the Confluence Workspace will disable the default GitLab Wiki. Your GitLab Wiki data will be saved and you can always re-enable it later by turning off this integration').html_safe
- end
- end
-
- def fields
- [
- {
- type: 'text',
- name: 'confluence_url',
- title: 'Confluence Cloud Workspace URL',
- placeholder: s_('ConfluenceService|The URL of the Confluence Workspace'),
- required: true
- }
- ]
- end
-
- def can_test?
- false
- end
-
- private
-
- def validate_confluence_url_is_cloud
- unless confluence_uri_valid?
- errors.add(:confluence_url, 'URL must be to a Confluence Cloud Workspace hosted on atlassian.net')
- end
- end
-
- def confluence_uri_valid?
- return false unless confluence_url
-
- uri = URI.parse(confluence_url)
-
- (uri.scheme&.match(VALID_SCHEME_MATCH) &&
- uri.host&.match(VALID_HOST_MATCH) &&
- uri.path&.match(VALID_PATH_MATCH)).present?
-
- rescue URI::InvalidURIError
- false
- end
-
- def cache_project_has_confluence
- return unless project && !project.destroyed?
-
- project.project_setting.save! unless project.project_setting.persisted?
- project.project_setting.update_column(:has_confluence, active?)
- end
-end