diff --git a/app/controllers/import/base_controller.rb b/app/controllers/import/base_controller.rb index 0f401f77fcd0929119f867a6caa8435a825cab15..5766c6924cdc44e56d06a751ea0a3b277082b8fa 100644 --- a/app/controllers/import/base_controller.rb +++ b/app/controllers/import/base_controller.rb @@ -27,11 +27,6 @@ class Import::BaseController < ApplicationController end def project_save_error(project) - # Projects::CreateService will set base message if unable to save - if project.errors[:base].present? - project.errors[:base].last - else - project.errors.full_messages.join(', ') - end + project.errors.full_messages.join(', ') end end diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb index d16ecdb7b9b785c0cf595d6a5f04a2ede2f90f93..d4a5b979f630b3c26918fc688b9d97ba5c106d63 100644 --- a/app/services/projects/create_service.rb +++ b/app/services/projects/create_service.rb @@ -63,6 +63,7 @@ module Projects message = "Unable to save #{e.record.type}: #{e.record.errors.full_messages.join(", ")} " fail(error: message) rescue => e + @project.errors.add(:base, e.message) if @project fail(error: e.message) end @@ -141,7 +142,6 @@ module Projects Rails.logger.error(log_message) if @project - @project.errors.add(:base, message) @project.mark_import_as_failed(message) if @project.persisted? && @project.import? end diff --git a/spec/support/controllers/githubish_import_controller_shared_examples.rb b/spec/support/controllers/githubish_import_controller_shared_examples.rb index 1a53c5fa487706ca8409d0ae72a38729e2245255..1c1b68c12a27633ee55c37abb4cc50d19b7c8cea 100644 --- a/spec/support/controllers/githubish_import_controller_shared_examples.rb +++ b/spec/support/controllers/githubish_import_controller_shared_examples.rb @@ -119,21 +119,6 @@ shared_examples 'a GitHub-ish import controller: POST create' do end it 'returns 422 response with the base error when the project could not be imported' do - project = build(:project) - error_message = 'This is an error' - project.errors.add(:base, error_message) - - allow(Gitlab::LegacyGithubImport::ProjectCreator) - .to receive(:new).with(provider_repo, provider_repo.name, user.namespace, user, access_params, type: provider) - .and_return(double(execute: project)) - - post :create, format: :json - - expect(response).to have_gitlab_http_status(422) - expect(json_response['errors']).to eq(error_message) - end - - it 'returns 422 response with a combined error when the project could not be imported' do project = build(:project) project.errors.add(:name, 'is invalid') project.errors.add(:path, 'is old')