Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
d52ef5ef
Commit
d52ef5ef
authored
Feb 07, 2017
by
Valery Sizov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixes after review
parent
ef27b4be
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
33 additions
and
26 deletions
+33
-26
app/controllers/projects/branches_controller.rb
app/controllers/projects/branches_controller.rb
+15
-5
app/helpers/projects_helper.rb
app/helpers/projects_helper.rb
+5
-12
changelogs/unreleased/create_branch_repo_less.yml
changelogs/unreleased/create_branch_repo_less.yml
+1
-1
spec/controllers/projects/branches_controller_spec.rb
spec/controllers/projects/branches_controller_spec.rb
+2
-8
spec/factories/services.rb
spec/factories/services.rb
+10
-0
No files found.
app/controllers/projects/branches_controller.rb
View file @
d52ef5ef
class
Projects::BranchesController
<
Projects
::
ApplicationController
class
Projects::BranchesController
<
Projects
::
ApplicationController
include
ActionView
::
Helpers
::
SanitizeHelper
include
ActionView
::
Helpers
::
SanitizeHelper
include
SortingHelper
include
SortingHelper
include
ProjectsHelper
# Authorize
# Authorize
before_action
:require_non_empty_project
,
except: :create
before_action
:require_non_empty_project
,
except: :create
...
@@ -34,7 +33,7 @@ class Projects::BranchesController < Projects::ApplicationController
...
@@ -34,7 +33,7 @@ class Projects::BranchesController < Projects::ApplicationController
branch_name
=
sanitize
(
strip_tags
(
params
[
:branch_name
]))
branch_name
=
sanitize
(
strip_tags
(
params
[
:branch_name
]))
branch_name
=
Addressable
::
URI
.
unescape
(
branch_name
)
branch_name
=
Addressable
::
URI
.
unescape
(
branch_name
)
is_redirect_to_autodeploy_needed
=
project
.
empty_repo?
&&
project
.
deployment_services
.
present?
redirect_to_autodeploy
=
project
.
empty_repo?
&&
project
.
deployment_services
.
present?
result
=
CreateBranchService
.
new
(
project
,
current_user
).
result
=
CreateBranchService
.
new
(
project
,
current_user
).
execute
(
branch_name
,
ref
)
execute
(
branch_name
,
ref
)
...
@@ -47,11 +46,10 @@ class Projects::BranchesController < Projects::ApplicationController
...
@@ -47,11 +46,10 @@ class Projects::BranchesController < Projects::ApplicationController
if
result
[
:status
]
==
:success
if
result
[
:status
]
==
:success
@branch
=
result
[
:branch
]
@branch
=
result
[
:branch
]
if
is_redirect_to_autodeploy_needed
if
redirect_to_autodeploy
redirect_to
(
redirect_to
(
url_to_autodeploy_setup
(
project
,
branch_name
),
url_to_autodeploy_setup
(
project
,
branch_name
),
notice:
"Branch
\"
#{
sanitize
(
branch_name
)
}
\"
was created. To set up auto deploy, \
notice:
view_context
.
autodeploy_flash_notice
(
branch_name
))
choose a GitLab CI Yaml template and commit your changes.
#{
view_context
.
link_to_autodeploy_doc
}
"
.
html_safe
)
else
else
redirect_to
namespace_project_tree_path
(
@project
.
namespace
,
@project
,
redirect_to
namespace_project_tree_path
(
@project
.
namespace
,
@project
,
@branch
.
name
)
@branch
.
name
)
...
@@ -91,4 +89,16 @@ class Projects::BranchesController < Projects::ApplicationController
...
@@ -91,4 +89,16 @@ class Projects::BranchesController < Projects::ApplicationController
@project
.
default_branch
||
'master'
@project
.
default_branch
||
'master'
end
end
end
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
end
end
app/helpers/projects_helper.rb
View file @
d52ef5ef
...
@@ -154,6 +154,11 @@ module ProjectsHelper
...
@@ -154,6 +154,11 @@ module ProjectsHelper
link_to
'About auto deploy'
,
help_page_path
(
'ci/autodeploy/index'
),
target:
'_blank'
link_to
'About auto deploy'
,
help_page_path
(
'ci/autodeploy/index'
),
target:
'_blank'
end
end
def
autodeploy_flash_notice
(
branch_name
)
"Branch <strong>
#{
truncate
(
sanitize
(
branch_name
))
}
</strong> was created. To set up auto deploy, \
choose a GitLab CI Yaml template and commit your changes.
#{
link_to_autodeploy_doc
}
"
.
html_safe
end
private
private
def
repo_children_classes
(
field
)
def
repo_children_classes
(
field
)
...
@@ -272,18 +277,6 @@ module ProjectsHelper
...
@@ -272,18 +277,6 @@ module ProjectsHelper
)
)
end
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
)
def
add_koding_stack_path
(
project
)
namespace_project_new_blob_path
(
namespace_project_new_blob_path
(
project
.
namespace
,
project
.
namespace
,
...
...
changelogs/unreleased/create_branch_repo_less.yml
View file @
d52ef5ef
---
---
title
:
Creat
e new branch from issue for repo-less project using new branch button
title
:
Creat
ing a new branch from an issue will automatically initialize a repository if one doesn't already exist.
merge_request
:
merge_request
:
author
:
author
:
spec/controllers/projects/branches_controller_spec.rb
View file @
d52ef5ef
...
@@ -116,14 +116,7 @@ describe Projects::BranchesController do
...
@@ -116,14 +116,7 @@ describe Projects::BranchesController do
it
'redirects to autodeploy setup page'
do
it
'redirects to autodeploy setup page'
do
result
=
{
status: :success
,
branch:
double
(
name:
branch
)
}
result
=
{
status: :success
,
branch:
double
(
name:
branch
)
}
project
.
create_kubernetes_service
(
project
.
services
<<
build
(
: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_any_instance_of
(
CreateBranchService
).
to
receive
(
:execute
).
and_return
(
result
)
expect
(
SystemNoteService
).
to
receive
(
:new_issue_branch
).
and_return
(
true
)
expect
(
SystemNoteService
).
to
receive
(
:new_issue_branch
).
and_return
(
true
)
...
@@ -135,6 +128,7 @@ describe Projects::BranchesController do
...
@@ -135,6 +128,7 @@ describe Projects::BranchesController do
issue_iid:
issue
.
iid
issue_iid:
issue
.
iid
expect
(
response
.
location
).
to
include
(
namespace_project_new_blob_path
(
project
.
namespace
,
project
,
branch
))
expect
(
response
.
location
).
to
include
(
namespace_project_new_blob_path
(
project
.
namespace
,
project
,
branch
))
expect
(
response
).
to
have_http_status
(
302
)
end
end
end
end
...
...
spec/factories/services.rb
View file @
d52ef5ef
...
@@ -2,4 +2,14 @@ FactoryGirl.define do
...
@@ -2,4 +2,14 @@ FactoryGirl.define do
factory
:service
do
factory
:service
do
project
factory: :empty_project
project
factory: :empty_project
end
end
factory
:kubernetes_service
do
project
factory: :empty_project
active
true
properties
({
namespace:
'somepath'
,
api_url:
'https://kubernetes.example.com'
,
token:
'a'
*
40
,
})
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment