Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
08e4d98c
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,发现更多精彩内容 >>
提交
08e4d98c
编写于
2月 06, 2017
作者:
V
Valery Sizov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Create master branch first if project is repository-less
上级
319dfd68
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
90 addition
and
5 deletion
+90
-5
app/controllers/projects/branches_controller.rb
app/controllers/projects/branches_controller.rb
+16
-4
app/helpers/projects_helper.rb
app/helpers/projects_helper.rb
+16
-0
app/services/create_branch_service.rb
app/services/create_branch_service.rb
+14
-0
spec/controllers/projects/branches_controller_spec.rb
spec/controllers/projects/branches_controller_spec.rb
+44
-1
未找到文件。
app/controllers/projects/branches_controller.rb
浏览文件 @
08e4d98c
class
Projects::BranchesController
<
Projects
::
ApplicationController
include
ActionView
::
Helpers
::
SanitizeHelper
include
SortingHelper
include
ProjectsHelper
# Authorize
before_action
:require_non_empty_project
before_action
:require_non_empty_project
,
except: :create
before_action
:authorize_download_code!
before_action
:authorize_push_code!
,
only:
[
:new
,
:create
,
:destroy
,
:destroy_all_merged
]
...
...
@@ -32,6 +34,8 @@ class Projects::BranchesController < Projects::ApplicationController
branch_name
=
sanitize
(
strip_tags
(
params
[
:branch_name
]))
branch_name
=
Addressable
::
URI
.
unescape
(
branch_name
)
is_redirect_to_autodeploy_needed
=
project
.
empty_repo?
&&
project
.
deployment_services
.
present?
result
=
CreateBranchService
.
new
(
project
,
current_user
).
execute
(
branch_name
,
ref
)
...
...
@@ -42,8 +46,16 @@ class Projects::BranchesController < Projects::ApplicationController
if
result
[
:status
]
==
:success
@branch
=
result
[
:branch
]
redirect_to
namespace_project_tree_path
(
@project
.
namespace
,
@project
,
@branch
.
name
)
if
is_redirect_to_autodeploy_needed
redirect_to
(
url_to_autodeploy_setup
(
project
,
branch_name
),
notice:
"Branch
\"
#{
sanitize
(
branch_name
)
}
\"
was created. To set up auto deploy, \
choose a GitLab CI Yaml template and commit your changes.
#{
view_context
.
link_to_autodeploy_doc
}
"
.
html_safe
)
else
redirect_to
namespace_project_tree_path
(
@project
.
namespace
,
@project
,
@branch
.
name
)
end
else
@error
=
result
[
:message
]
render
action:
'new'
...
...
@@ -76,7 +88,7 @@ class Projects::BranchesController < Projects::ApplicationController
ref_escaped
=
sanitize
(
strip_tags
(
params
[
:ref
]))
Addressable
::
URI
.
unescape
(
ref_escaped
)
else
@project
.
default_branch
@project
.
default_branch
||
'master'
end
end
end
app/helpers/projects_helper.rb
浏览文件 @
08e4d98c
...
...
@@ -150,6 +150,10 @@ module ProjectsHelper
).
html_safe
end
def
link_to_autodeploy_doc
link_to
'About auto deploy'
,
help_page_path
(
'ci/autodeploy/index'
),
target:
'_blank'
end
private
def
repo_children_classes
(
field
)
...
...
@@ -268,6 +272,18 @@ module ProjectsHelper
)
end
def
url_to_autodeploy_setup
(
project
,
branch_name
)
namespace_project_new_blob_path
(
project
.
namespace
,
project
,
branch_name
,
file_name:
'.gitlab-ci.yml'
,
commit_message:
'Set up auto deploy'
,
target_branch:
branch_name
,
context:
'autodeploy'
)
end
def
add_koding_stack_path
(
project
)
namespace_project_new_blob_path
(
project
.
namespace
,
...
...
app/services/create_branch_service.rb
浏览文件 @
08e4d98c
class
CreateBranchService
<
BaseService
def
execute
(
branch_name
,
ref
)
create_master_branch
if
project
.
empty_repo?
result
=
ValidateNewBranchService
.
new
(
project
,
current_user
)
.
execute
(
branch_name
)
...
...
@@ -19,4 +21,16 @@ class CreateBranchService < BaseService
def
success
(
branch
)
super
().
merge
(
branch:
branch
)
end
private
def
create_master_branch
project
.
repository
.
commit_file
(
current_user
,
'/README.md'
,
''
,
message:
'Add README.md'
,
branch_name:
'master'
,
update:
false
)
end
end
spec/controllers/projects/branches_controller_spec.rb
浏览文件 @
08e4d98c
...
...
@@ -68,7 +68,7 @@ describe Projects::BranchesController do
describe
"created from the new branch button on issues"
do
let
(
:branch
)
{
"1-feature-branch"
}
let
!
(
:issue
)
{
create
(
:issue
,
project:
project
)
}
let
(
:issue
)
{
create
(
:issue
,
project:
project
)
}
before
do
sign_in
(
user
)
...
...
@@ -95,6 +95,49 @@ describe Projects::BranchesController do
issue_iid:
issue
.
iid
end
context
'repository-less project'
do
let
(
:project
)
{
create
:empty_project
}
it
'redirects to newly created branch'
do
result
=
{
status: :success
,
branch:
double
(
name:
branch
)
}
expect_any_instance_of
(
CreateBranchService
).
to
receive
(
:execute
).
and_return
(
result
)
expect
(
SystemNoteService
).
to
receive
(
:new_issue_branch
).
and_return
(
true
)
post
:create
,
namespace_id:
project
.
namespace
.
to_param
,
project_id:
project
.
to_param
,
branch_name:
branch
,
issue_iid:
issue
.
iid
expect
(
response
).
to
redirect_to
namespace_project_tree_path
(
project
.
namespace
,
project
,
branch
)
end
it
'redirects to autodeploy setup page'
do
result
=
{
status: :success
,
branch:
double
(
name:
branch
)
}
project
.
create_kubernetes_service
(
active:
true
,
properties:
{
namespace:
project
.
path
,
api_url:
'https://kubernetes.example.com'
,
token:
'a'
*
40
,
}
)
expect_any_instance_of
(
CreateBranchService
).
to
receive
(
:execute
).
and_return
(
result
)
expect
(
SystemNoteService
).
to
receive
(
:new_issue_branch
).
and_return
(
true
)
post
:create
,
namespace_id:
project
.
namespace
.
to_param
,
project_id:
project
.
to_param
,
branch_name:
branch
,
issue_iid:
issue
.
iid
expect
(
response
.
location
).
to
include
(
namespace_project_new_blob_path
(
project
.
namespace
,
project
,
branch
))
end
end
context
'without issue feature access'
do
before
do
project
.
update!
(
visibility_level:
Gitlab
::
VisibilityLevel
::
PUBLIC
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录