diff options
Diffstat (limited to 'app/services/ci/web_ide_config_service.rb')
-rw-r--r-- | app/services/ci/web_ide_config_service.rb | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/app/services/ci/web_ide_config_service.rb b/app/services/ci/web_ide_config_service.rb deleted file mode 100644 index ade9132f419..00000000000 --- a/app/services/ci/web_ide_config_service.rb +++ /dev/null @@ -1,59 +0,0 @@ -# frozen_string_literal: true - -module Ci - class WebIdeConfigService < ::BaseService - include ::Gitlab::Utils::StrongMemoize - - ValidationError = Class.new(StandardError) - - WEBIDE_CONFIG_FILE = '.gitlab/.gitlab-webide.yml'.freeze - - attr_reader :config, :config_content - - def execute - check_access! - load_config_content! - load_config! - - success(terminal: config.terminal_value) - rescue ValidationError => e - error(e.message) - end - - private - - def check_access! - unless can?(current_user, :download_code, project) - raise ValidationError, 'Insufficient permissions to read configuration' - end - end - - def load_config_content! - @config_content = webide_yaml_from_repo - - unless config_content - raise ValidationError, "Failed to load Web IDE config file '#{WEBIDE_CONFIG_FILE}' for #{params[:sha]}" - end - end - - def load_config! - @config = Gitlab::WebIde::Config.new(config_content) - - unless @config.valid? - raise ValidationError, @config.errors.first - end - rescue Gitlab::WebIde::Config::ConfigError => e - raise ValidationError, e.message - end - - def webide_yaml_from_repo - gitlab_webide_yml_for(params[:sha]) - rescue GRPC::NotFound, GRPC::Internal - nil - end - - def gitlab_webide_yml_for(sha) - project.repository.blob_data_at(sha, WEBIDE_CONFIG_FILE) - end - end -end |