in lib/gitlab/qa/component/project_importer.rb [21:54]
def create_import_script
<<~'RUBY'
require 'timeout'
project_url = ENV.fetch('PROJECT_URL')
project_name = ENV.fetch('PROJECT_NAME')
project_path = ENV.fetch('PROJECT_PATH')
root_user = User.find_by_username('root')
project = Projects::CreateService.new(root_user,
{ name: project_name, path: project_path, import_url: project_url }).execute
if project.persisted?
begin
Timeout.timeout(300) do
until ['finished', 'failed'].include?(project.import_status)
sleep 5
project.reload
end
end
rescue Timeout::Error
puts "Import process timed out after 5 minutes"
end
else
puts "Failed to create project: #{project.errors.full_messages.join(', ')}"
end
puts "Import state: #{project.import_state.attributes}" if project.respond_to?(:import_state)
RUBY
end