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
1
Merge Requests
1
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
nexedi
gitlab-ce
Commits
6a9158d7
Commit
6a9158d7
authored
Dec 30, 2016
by
Jose Ivan Vargas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Port of 26138-combine-webhooks-and-services-settings-pages to EE
parent
bb4baf24
Changes
21
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
469 additions
and
42 deletions
+469
-42
app/controllers/projects/hooks_controller.rb
app/controllers/projects/hooks_controller.rb
+4
-10
app/controllers/projects/services_controller.rb
app/controllers/projects/services_controller.rb
+0
-4
app/controllers/projects/settings/integrations_controller.rb
app/controllers/projects/settings/integrations_controller.rb
+18
-0
app/helpers/gitlab_routing_helper.rb
app/helpers/gitlab_routing_helper.rb
+4
-0
app/views/layouts/nav/_project_settings.html.haml
app/views/layouts/nav/_project_settings.html.haml
+3
-7
app/views/projects/hooks/_index.html.haml
app/views/projects/hooks/_index.html.haml
+0
-0
app/views/projects/services/_index.html.haml
app/views/projects/services/_index.html.haml
+0
-2
app/views/projects/settings/integrations/_project_hook.html.haml
...ws/projects/settings/integrations/_project_hook.html.haml
+0
-0
app/views/projects/settings/integrations/show.html.haml
app/views/projects/settings/integrations/show.html.haml
+3
-0
app/views/shared/web_hooks/_form.html.haml
app/views/shared/web_hooks/_form.html.haml
+0
-1
config/routes/project.rb
config/routes/project.rb
+1
-0
config/routes/project.rb.orig
config/routes/project.rb.orig
+398
-0
features/project/active_tab.feature
features/project/active_tab.feature
+3
-3
features/steps/project/active_tab.rb
features/steps/project/active_tab.rb
+4
-4
features/steps/project/hooks.rb
features/steps/project/hooks.rb
+3
-3
features/steps/project/services.rb
features/steps/project/services.rb
+1
-1
features/steps/shared/paths.rb
features/steps/shared/paths.rb
+1
-1
spec/controllers/projects/settings/integrations_controller_spec.rb
...rollers/projects/settings/integrations_controller_spec.rb
+20
-0
spec/features/security/project/internal_access_spec.rb
spec/features/security/project/internal_access_spec.rb
+2
-2
spec/features/security/project/private_access_spec.rb
spec/features/security/project/private_access_spec.rb
+2
-2
spec/features/security/project/public_access_spec.rb
spec/features/security/project/public_access_spec.rb
+2
-2
No files found.
app/controllers/projects/hooks_controller.rb
View file @
6a9158d7
...
@@ -6,21 +6,15 @@ class Projects::HooksController < Projects::ApplicationController
...
@@ -6,21 +6,15 @@ class Projects::HooksController < Projects::ApplicationController
layout
"project_settings"
layout
"project_settings"
def
index
@hooks
=
@project
.
hooks
@hook
=
ProjectHook
.
new
end
def
create
def
create
@hook
=
@project
.
hooks
.
new
(
hook_params
)
@hook
=
@project
.
hooks
.
new
(
hook_params
)
@hook
.
save
@hook
.
save
if
@hook
.
valid?
unless
@hook
.
valid?
redirect_to
namespace_project_hooks_path
(
@project
.
namespace
,
@project
)
else
@hooks
=
@project
.
hooks
.
select
(
&
:persisted?
)
@hooks
=
@project
.
hooks
.
select
(
&
:persisted?
)
render
:index
flash
[
:alert
]
=
@hook
.
errors
.
full_messages
.
join
.
html_safe
end
end
redirect_to
namespace_project_settings_integrations_path
(
@project
.
namespace
,
@project
)
end
end
def
test
def
test
...
@@ -44,7 +38,7 @@ class Projects::HooksController < Projects::ApplicationController
...
@@ -44,7 +38,7 @@ class Projects::HooksController < Projects::ApplicationController
def
destroy
def
destroy
hook
.
destroy
hook
.
destroy
redirect_to
namespace_project_
hook
s_path
(
@project
.
namespace
,
@project
)
redirect_to
namespace_project_
settings_integration
s_path
(
@project
.
namespace
,
@project
)
end
end
private
private
...
...
app/controllers/projects/services_controller.rb
View file @
6a9158d7
...
@@ -9,10 +9,6 @@ class Projects::ServicesController < Projects::ApplicationController
...
@@ -9,10 +9,6 @@ class Projects::ServicesController < Projects::ApplicationController
layout
"project_settings"
layout
"project_settings"
def
index
@services
=
@project
.
find_or_initialize_services
end
def
edit
def
edit
end
end
...
...
app/controllers/projects/settings/integrations_controller.rb
0 → 100644
View file @
6a9158d7
module
Projects
module
Settings
class
IntegrationsController
<
Projects
::
ApplicationController
include
ServiceParams
before_action
:authorize_admin_project!
layout
"project_settings"
def
show
@hooks
=
@project
.
hooks
@hook
=
ProjectHook
.
new
# Services
@services
=
@project
.
find_or_initialize_services
end
end
end
end
app/helpers/gitlab_routing_helper.rb
View file @
6a9158d7
...
@@ -208,6 +208,10 @@ module GitlabRoutingHelper
...
@@ -208,6 +208,10 @@ module GitlabRoutingHelper
end
end
# Settings
# Settings
def
project_settings_integrations_path
(
project
,
*
args
)
namespace_project_settings_integrations_path
(
project
.
namespace
,
project
,
*
args
)
end
def
project_settings_members_path
(
project
,
*
args
)
def
project_settings_members_path
(
project
,
*
args
)
namespace_project_settings_members_path
(
project
.
namespace
,
project
,
*
args
)
namespace_project_settings_members_path
(
project
.
namespace
,
project
,
*
args
)
end
end
...
...
app/views/layouts/nav/_project_settings.html.haml
View file @
6a9158d7
...
@@ -8,14 +8,10 @@
...
@@ -8,14 +8,10 @@
=
link_to
namespace_project_deploy_keys_path
(
@project
.
namespace
,
@project
),
title:
'Deploy Keys'
do
=
link_to
namespace_project_deploy_keys_path
(
@project
.
namespace
,
@project
),
title:
'Deploy Keys'
do
%span
%span
Deploy Keys
Deploy Keys
=
nav_link
(
controller: :
hook
s
)
do
=
nav_link
(
controller: :
integration
s
)
do
=
link_to
namespace_project_
hooks_path
(
@project
.
namespace
,
@project
),
title:
'Webhook
s'
do
=
link_to
namespace_project_
settings_integrations_path
(
@project
.
namespace
,
@project
),
title:
'Integration
s'
do
%span
%span
Webhooks
Integrations
=
nav_link
(
controller: :services
)
do
=
link_to
namespace_project_services_path
(
@project
.
namespace
,
@project
),
title:
'Services'
do
%span
Services
=
nav_link
(
controller: :protected_branches
)
do
=
nav_link
(
controller: :protected_branches
)
do
=
link_to
namespace_project_protected_branches_path
(
@project
.
namespace
,
@project
),
title:
'Protected Branches'
do
=
link_to
namespace_project_protected_branches_path
(
@project
.
namespace
,
@project
),
title:
'Protected Branches'
do
%span
%span
...
...
app/views/projects/hooks/index.html.haml
→
app/views/projects/hooks/
_
index.html.haml
View file @
6a9158d7
File moved
app/views/projects/services/index.html.haml
→
app/views/projects/services/
_
index.html.haml
View file @
6a9158d7
-
page_title
"Services"
.row.prepend-top-default.append-bottom-default
.row.prepend-top-default.append-bottom-default
.col-lg-3
.col-lg-3
%h4
.prepend-top-0
%h4
.prepend-top-0
...
...
app/views/projects/
hook
s/_project_hook.html.haml
→
app/views/projects/
settings/integration
s/_project_hook.html.haml
View file @
6a9158d7
File moved
app/views/projects/settings/integrations/show.html.haml
0 → 100644
View file @
6a9158d7
-
page_title
'Integrations'
=
render
'projects/hooks/index'
=
render
'projects/services/index'
app/views/shared/web_hooks/_form.html.haml
View file @
6a9158d7
-
page_title
"Webhooks"
-
context_title
=
@project
?
'project'
:
'group'
-
context_title
=
@project
?
'project'
:
'group'
.row.prepend-top-default
.row.prepend-top-default
...
...
config/routes/project.rb
View file @
6a9158d7
...
@@ -361,6 +361,7 @@ constraints(ProjectUrlConstrainer.new) do
...
@@ -361,6 +361,7 @@ constraints(ProjectUrlConstrainer.new) do
namespace
:settings
do
namespace
:settings
do
resource
:members
,
only:
[
:show
]
resource
:members
,
only:
[
:show
]
resource
:integrations
,
only:
[
:show
]
end
end
# Since both wiki and repository routing contains wildcard characters
# Since both wiki and repository routing contains wildcard characters
...
...
config/routes/project.rb.orig
0 → 100644
View file @
6a9158d7
This diff is collapsed.
Click to expand it.
features/project/active_tab.feature
View file @
6a9158d7
...
@@ -39,10 +39,10 @@ Feature: Project Active Tab
...
@@ -39,10 +39,10 @@ Feature: Project Active Tab
# Sub Tabs: Settings
# Sub Tabs: Settings
Scenario
:
On Project Settings/
Hook
s
Scenario
:
On Project Settings/
Integration
s
Given
I visit my project's settings page
Given
I visit my project's settings page
And
I click the
"
Hook
s"
tab
And
I click the
"
Integration
s"
tab
Then
the active sub nav should be
Hook
s
Then
the active sub nav should be
Integration
s
And
no other sub navs should be active
And
no other sub navs should be active
And
the active main tab should be Settings
And
the active main tab should be Settings
...
...
features/steps/project/active_tab.rb
View file @
6a9158d7
...
@@ -27,8 +27,8 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps
...
@@ -27,8 +27,8 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps
end
end
end
end
step
'I click the "
Hook
s" tab'
do
step
'I click the "
Integration
s" tab'
do
click_link
(
'
Webhook
s'
)
click_link
(
'
Integration
s'
)
end
end
step
'I click the "Deploy Keys" tab'
do
step
'I click the "Deploy Keys" tab'
do
...
@@ -43,8 +43,8 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps
...
@@ -43,8 +43,8 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps
ensure_active_sub_nav
(
'Members'
)
ensure_active_sub_nav
(
'Members'
)
end
end
step
'the active sub nav should be
Hook
s'
do
step
'the active sub nav should be
Integration
s'
do
ensure_active_sub_nav
(
'
Webhook
s'
)
ensure_active_sub_nav
(
'
Integration
s'
)
end
end
step
'the active sub nav should be Deploy Keys'
do
step
'the active sub nav should be Deploy Keys'
do
...
...
features/steps/project/hooks.rb
View file @
6a9158d7
...
@@ -36,12 +36,12 @@ class Spinach::Features::ProjectHooks < Spinach::FeatureSteps
...
@@ -36,12 +36,12 @@ class Spinach::Features::ProjectHooks < Spinach::FeatureSteps
end
end
step
'I should see newly created hook'
do
step
'I should see newly created hook'
do
expect
(
current_path
).
to
eq
namespace_project_
hook
s_path
(
current_project
.
namespace
,
current_project
)
expect
(
current_path
).
to
eq
namespace_project_
settings_integration
s_path
(
current_project
.
namespace
,
current_project
)
expect
(
page
).
to
have_content
(
@url
)
expect
(
page
).
to
have_content
(
@url
)
end
end
step
'I should see newly created hook with SSL verification enabled'
do
step
'I should see newly created hook with SSL verification enabled'
do
expect
(
current_path
).
to
eq
namespace_project_
hook
s_path
(
current_project
.
namespace
,
current_project
)
expect
(
current_path
).
to
eq
namespace_project_
settings_integration
s_path
(
current_project
.
namespace
,
current_project
)
expect
(
page
).
to
have_content
(
@url
)
expect
(
page
).
to
have_content
(
@url
)
expect
(
page
).
to
have_content
(
"SSL Verification: enabled"
)
expect
(
page
).
to
have_content
(
"SSL Verification: enabled"
)
end
end
...
@@ -57,7 +57,7 @@ class Spinach::Features::ProjectHooks < Spinach::FeatureSteps
...
@@ -57,7 +57,7 @@ class Spinach::Features::ProjectHooks < Spinach::FeatureSteps
end
end
step
'hook should be triggered'
do
step
'hook should be triggered'
do
expect
(
current_path
).
to
eq
namespace_project_
hook
s_path
(
current_project
.
namespace
,
current_project
)
expect
(
current_path
).
to
eq
namespace_project_
settings_integration
s_path
(
current_project
.
namespace
,
current_project
)
expect
(
page
).
to
have_selector
'.flash-notice'
,
expect
(
page
).
to
have_selector
'.flash-notice'
,
text:
'Hook executed successfully: HTTP 200'
text:
'Hook executed successfully: HTTP 200'
end
end
...
...
features/steps/project/services.rb
View file @
6a9158d7
...
@@ -4,7 +4,7 @@ class Spinach::Features::ProjectServices < Spinach::FeatureSteps
...
@@ -4,7 +4,7 @@ class Spinach::Features::ProjectServices < Spinach::FeatureSteps
include
SharedPaths
include
SharedPaths
step
'I visit project "Shop" services page'
do
step
'I visit project "Shop" services page'
do
visit
namespace_project_se
rvice
s_path
(
@project
.
namespace
,
@project
)
visit
namespace_project_se
ttings_integration
s_path
(
@project
.
namespace
,
@project
)
end
end
step
'I should see list of available services'
do
step
'I should see list of available services'
do
...
...
features/steps/shared/paths.rb
View file @
6a9158d7
...
@@ -276,7 +276,7 @@ module SharedPaths
...
@@ -276,7 +276,7 @@ module SharedPaths
end
end
step
'I visit project hooks page'
do
step
'I visit project hooks page'
do
visit
namespace_project_
hook
s_path
(
@project
.
namespace
,
@project
)
visit
namespace_project_
settings_integration
s_path
(
@project
.
namespace
,
@project
)
end
end
step
'I visit group hooks page'
do
step
'I visit group hooks page'
do
...
...
spec/controllers/projects/settings/integrations_controller_spec.rb
0 → 100644
View file @
6a9158d7
require
'spec_helper'
describe
Projects
::
Settings
::
IntegrationsController
do
let
(
:project
)
{
create
(
:project
,
:public
)
}
let
(
:user
)
{
create
(
:user
)
}
before
do
project
.
team
<<
[
user
,
:master
]
sign_in
(
user
)
end
describe
'GET show'
do
it
'renders show with 200 status code'
do
get
:show
,
namespace_id:
project
.
namespace
,
project_id:
project
expect
(
response
).
to
have_http_status
(
200
)
expect
(
response
).
to
render_template
(
:show
)
end
end
end
spec/features/security/project/internal_access_spec.rb
View file @
6a9158d7
...
@@ -262,8 +262,8 @@ describe "Internal Project Access", feature: true do
...
@@ -262,8 +262,8 @@ describe "Internal Project Access", feature: true do
it
{
is_expected
.
to
be_denied_for
(
:visitor
)
}
it
{
is_expected
.
to
be_denied_for
(
:visitor
)
}
end
end
describe
"GET /:project_path/
hook
s"
do
describe
"GET /:project_path/
settings/integration
s"
do
subject
{
namespace_project_
hook
s_path
(
project
.
namespace
,
project
)
}
subject
{
namespace_project_
settings_integration
s_path
(
project
.
namespace
,
project
)
}
it
{
is_expected
.
to
be_allowed_for
(
:admin
)
}
it
{
is_expected
.
to
be_allowed_for
(
:admin
)
}
it
{
is_expected
.
to
be_allowed_for
(
:owner
).
of
(
project
)
}
it
{
is_expected
.
to
be_allowed_for
(
:owner
).
of
(
project
)
}
...
...
spec/features/security/project/private_access_spec.rb
View file @
6a9158d7
...
@@ -234,8 +234,8 @@ describe "Private Project Access", feature: true do
...
@@ -234,8 +234,8 @@ describe "Private Project Access", feature: true do
it
{
is_expected
.
to
be_denied_for
(
:visitor
)
}
it
{
is_expected
.
to
be_denied_for
(
:visitor
)
}
end
end
describe
"GET /:project_path/hooks"
do
describe
"GET /:project_path/
namespace/
hooks"
do
subject
{
namespace_project_
hook
s_path
(
project
.
namespace
,
project
)
}
subject
{
namespace_project_
settings_integration
s_path
(
project
.
namespace
,
project
)
}
it
{
is_expected
.
to
be_allowed_for
(
:admin
)
}
it
{
is_expected
.
to
be_allowed_for
(
:admin
)
}
it
{
is_expected
.
to
be_allowed_for
(
:owner
).
of
(
project
)
}
it
{
is_expected
.
to
be_allowed_for
(
:owner
).
of
(
project
)
}
...
...
spec/features/security/project/public_access_spec.rb
View file @
6a9158d7
...
@@ -400,8 +400,8 @@ describe "Public Project Access", feature: true do
...
@@ -400,8 +400,8 @@ describe "Public Project Access", feature: true do
it
{
is_expected
.
to
be_allowed_for
(
:visitor
)
}
it
{
is_expected
.
to
be_allowed_for
(
:visitor
)
}
end
end
describe
"GET /:project_path/
hook
s"
do
describe
"GET /:project_path/
settings/integration
s"
do
subject
{
namespace_project_
hook
s_path
(
project
.
namespace
,
project
)
}
subject
{
namespace_project_
settings_integration
s_path
(
project
.
namespace
,
project
)
}
it
{
is_expected
.
to
be_allowed_for
(
:admin
)
}
it
{
is_expected
.
to
be_allowed_for
(
:admin
)
}
it
{
is_expected
.
to
be_allowed_for
(
:owner
).
of
(
project
)
}
it
{
is_expected
.
to
be_allowed_for
(
:owner
).
of
(
project
)
}
...
...
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