Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
903da377
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
903da377
编写于
6月 13, 2016
作者:
J
James Lopez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
WIP - starting refactoring import/export to use services
上级
f449eeb6
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
55 addition
and
8 deletion
+55
-8
app/controllers/import/gitlab_projects_controller.rb
app/controllers/import/gitlab_projects_controller.rb
+21
-4
app/views/import/gitlab_projects/new.html.haml
app/views/import/gitlab_projects/new.html.haml
+4
-1
app/views/import/gitlab_projects/status.html.haml
app/views/import/gitlab_projects/status.html.haml
+0
-0
lib/gitlab/gitlab_import/project_creator.rb
lib/gitlab/gitlab_import/project_creator.rb
+1
-3
lib/gitlab/import_export/project_creator.rb
lib/gitlab/import_export/project_creator.rb
+29
-0
未找到文件。
app/controllers/import/gitlab_projects_controller.rb
浏览文件 @
903da377
...
@@ -2,24 +2,41 @@ class Import::GitlabProjectsController < Import::BaseController
...
@@ -2,24 +2,41 @@ class Import::GitlabProjectsController < Import::BaseController
before_action
:verify_gitlab_project_import_enabled
before_action
:verify_gitlab_project_import_enabled
before_action
:verify_project_and_namespace_access
before_action
:verify_project_and_namespace_access
rescue_from
OAuth
::
Error
,
with: :gitlab_project_unauthorized
def
new
def
new
@namespace_id
=
project_params
[
:namespace_id
]
@namespace_id
=
project_params
[
:namespace_id
]
@path
=
project_params
[
:path
]
@path
=
project_params
[
:path
]
end
end
def
create
def
create
unless
file_is_valid?
return
redirect_back_or_default
(
options:
{
alert:
"You need to upload a GitLab project export archive."
})
end
@project
=
Project
.
create_from_import_job
(
current_user_id:
current_user
.
id
,
@project
=
Project
.
create_from_import_job
(
current_user_id:
current_user
.
id
,
tmp_file:
File
.
expand_path
(
params
[
:file
].
path
),
tmp_file:
File
.
expand_path
(
params
[
:file
].
path
),
namespace_id:
project_params
[
:namespace_id
],
namespace_id:
project_params
[
:namespace_id
],
project_path:
project_params
[
:path
])
project_path:
project_params
[
:path
])
redirect_to
dashboard_projects_path
@project
=
Gitlab
::
GitlabImport
::
ProjectCreator
.
new
(
repo
,
namespace
,
current_user
,
access_params
).
execute
flash
[
:notice
]
=
"The project import has been started."
if
@project
.
saved?
redirect_to
(
project_path
(
@project
),
notice:
"Project '
#{
@project
.
name
}
' is being imported."
)
else
render
'new'
end
end
end
private
private
def
file_is_valid?
params
[
:file
].
respond_to?
(
:read
)
&&
params
[
:file
].
content_type
==
'application/x-gzip'
end
def
verify_project_and_namespace_access
def
verify_project_and_namespace_access
unless
namespace_access?
unless
namespace_access?
render_403
render_403
...
@@ -27,7 +44,7 @@ class Import::GitlabProjectsController < Import::BaseController
...
@@ -27,7 +44,7 @@ class Import::GitlabProjectsController < Import::BaseController
end
end
def
namespace_access?
def
namespace_access?
c
urrent_user
.
can?
(
:create_projects
,
Namespace
.
find
(
project_params
[
:namespace_id
]))
c
an?
(
current_user
,
:create_projects
,
Namespace
.
find
(
project_params
[
:namespace_id
]))
end
end
def
verify_gitlab_project_import_enabled
def
verify_gitlab_project_import_enabled
...
...
app/views/import/gitlab_projects/new.html.haml
浏览文件 @
903da377
-
page_title
"GitLab Import"
-
page_title
"GitLab Import"
-
header_title
"Projects"
,
root_path
-
header_title
"Projects"
,
root_path
%h3
.page-title
%h3
.page-title
%i
.fa.fa-gitlab
=
icon
(
'gitlab'
)
Import projects from GitLab
Import projects from GitLab
%hr
%hr
=
form_tag
import_gitlab_project_path
,
class:
'form-horizontal'
,
multipart:
true
do
=
form_tag
import_gitlab_project_path
,
class:
'form-horizontal'
,
multipart:
true
do
%p
Project will be imported to path
#{
@path
}
%p
%p
To get started add your exported project file below:
To get started add your exported project file below:
.form-group
.form-group
...
...
app/views/import/gitlab_projects/status.html.haml
已删除
100644 → 0
浏览文件 @
f449eeb6
lib/gitlab/gitlab_import/project_creator.rb
浏览文件 @
903da377
...
@@ -11,7 +11,7 @@ module Gitlab
...
@@ -11,7 +11,7 @@ module Gitlab
end
end
def
execute
def
execute
project
=
::
Projects
::
CreateService
.
new
(
::
Projects
::
CreateService
.
new
(
current_user
,
current_user
,
name:
repo
[
"name"
],
name:
repo
[
"name"
],
path:
repo
[
"path"
],
path:
repo
[
"path"
],
...
@@ -22,8 +22,6 @@ module Gitlab
...
@@ -22,8 +22,6 @@ module Gitlab
import_source:
repo
[
"path_with_namespace"
],
import_source:
repo
[
"path_with_namespace"
],
import_url:
repo
[
"http_url_to_repo"
].
sub
(
"://"
,
"://oauth2:
#{
@session_data
[
:gitlab_access_token
]
}
@"
)
import_url:
repo
[
"http_url_to_repo"
].
sub
(
"://"
,
"://oauth2:
#{
@session_data
[
:gitlab_access_token
]
}
@"
)
).
execute
).
execute
project
end
end
end
end
end
end
...
...
lib/gitlab/import_export/project_creator.rb
0 → 100644
浏览文件 @
903da377
module
Gitlab
module
ImportExport
class
ProjectCreator
def
initialize
(
namespace_id
,
current_user
,
)
@repo
=
repo
@namespace
=
Namespace
.
find_by_id
(
namespace_id
)
@current_user
=
current_user
@user_map
=
user_map
end
def
execute
::
Projects
::
CreateService
.
new
(
current_user
,
name:
repo
.
name
,
path:
repo
.
name
,
description:
repo
.
summary
,
namespace:
namespace
,
creator:
current_user
,
visibility_level:
Gitlab
::
VisibilityLevel
::
PUBLIC
,
import_type:
"google_code"
,
import_source:
repo
.
name
,
import_url:
repo
.
import_url
,
import_data:
{
data:
{
'repo'
=>
repo
.
raw_data
,
'user_map'
=>
user_map
}
}
).
execute
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录