diff options
author | James Lopez <james@jameslopez.es> | 2016-04-25 18:06:24 +0200 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2016-04-25 18:06:24 +0200 |
commit | 4037a738945631c5fc58c464d4a9b12e9448387a (patch) | |
tree | 427307dcc0a5ba74e36b10dba8e78e910550ab7d /app/controllers | |
parent | e5a59331cf5221d39f9430480d449f30bbe8e63f (diff) | |
parent | 22ff009a54b281f8db2fd28530b84ebf53bf9de6 (diff) | |
download | gitlab-ce-4037a738945631c5fc58c464d4a9b12e9448387a.tar.gz |
Merge branch 'feature/project-import' of gitlab.com:gitlab-org/gitlab-ce into feature/project-export-ui-experimental
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/import/gitlab_project_controller.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/app/controllers/import/gitlab_project_controller.rb b/app/controllers/import/gitlab_project_controller.rb new file mode 100644 index 00000000000..fa3e0c7876d --- /dev/null +++ b/app/controllers/import/gitlab_project_controller.rb @@ -0,0 +1,46 @@ +class Import::GitlabProjectController < Import::BaseController + before_action :verify_gitlab_project_import_enabled + before_action :gitlab_project_auth, except: :callback + + rescue_from OAuth::Error, with: :gitlab_project_unauthorized + + #TODO permissions stuff + + def callback + + redirect_to status_import_gitlab_project_url + end + + def status + @repos = client.projects + @incompatible_repos = client.incompatible_projects + + @already_added_projects = current_user.created_projects.where(import_type: "gitlab_project") + already_added_projects_names = @already_added_projects.pluck(:import_source) + + @repos.to_a.reject!{ |repo| already_added_projects_names.include? "#{repo["owner"]}/#{repo["slug"]}" } + end + + def jobs + jobs = current_user.created_projects.where(import_type: "gitlab_project").to_json(only: [:id, :import_status]) + render json: jobs + end + + def create + @file = params[:file] + # @project_name = + + repo_owner = current_user.username + @target_namespace = params[:new_namespace].presence || repo_owner + + namespace = get_or_create_namespace || (render and return) + + @project = Gitlab::ImportExport::ImportService.execute(archive_file: file, owner: repo_owner) + end + + private + + def verify_gitlab_project_import_enabled + render_404 unless gitlab_project_import_enabled? + end +end |