class Import::GitoriousController < Import::BaseController before_action :verify_gitorious_import_enabled def new redirect_to client.authorize_url(callback_import_gitorious_url) end def callback session[:gitorious_repos] = params[:repos] redirect_to status_import_gitorious_path end def status @repos = client.repos @already_added_projects = current_user.created_projects.where(import_type: "gitorious") already_added_projects_names = @already_added_projects.pluck(:import_source) @repos.reject! { |repo| already_added_projects_names.include? repo.full_name } end def jobs jobs = current_user.created_projects.where(import_type: "gitorious").to_json(only: [:id, :import_status]) render json: jobs end def create @repo_id = params[:repo_id] repo = client.repo(@repo_id) @target_namespace = params[:new_namespace].presence || repo.namespace @project_name = repo.name namespace = get_or_create_namespace || (render and return) @project = Gitlab::GitoriousImport::ProjectCreator.new(repo, namespace, current_user).execute end private def client @client ||= Gitlab::GitoriousImport::Client.new(session[:gitorious_repos]) end def verify_gitorious_import_enabled render_404 unless gitorious_import_enabled? end end