create_import_script

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