BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
39772f01
Commit
39772f01
authored
Oct 05, 2015
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'ci-web-hooks'
parents
b6808f43
ecbe393b
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
75 additions
and
56 deletions
+75
-56
CHANGELOG
CHANGELOG
+1
-0
ci_web_hooks_controller.rb
app/controllers/projects/ci_web_hooks_controller.rb
+32
-40
_nav_project.html.haml
app/views/layouts/ci/_nav_project.html.haml
+0
-5
_project_settings.html.haml
app/views/layouts/nav/_project_settings.html.haml
+5
-0
index.html.haml
app/views/projects/ci_web_hooks/index.html.haml
+5
-5
routes.rb
config/routes.rb
+5
-6
ci_web_hooks_spec.rb
spec/features/ci_web_hooks_spec.rb
+27
-0
No files found.
CHANGELOG
View file @
39772f01
...
...
@@ -30,6 +30,7 @@ v 8.1.0 (unreleased)
- Fix wrong access level badge on MR comments
- Hide password in the service settings form
- Fix anchors to comments in diffs
- Move CI web hooks page to project settings area
v 8.0.3
- Fix URL shown in Slack notifications
...
...
app/controllers/
ci/
web_hooks_controller.rb
→
app/controllers/
projects/ci_
web_hooks_controller.rb
View file @
39772f01
module
Ci
class
WebHooksController
<
Ci
::
ApplicationController
before_action
:authenticate_user!
before_action
:project
before_action
:authorize_access_project!
before_action
:authorize_manage_project!
layout
'ci/project'
def
index
@web_hooks
=
@project
.
web_hooks
@web_hook
=
Ci
::
WebHook
.
new
end
class
Projects
::
CiWebHooksController
<
Projects
::
ApplicationController
before_action
:ci_project
before_action
:authorize_admin_project!
def
create
@web_hook
=
@project
.
web_hooks
.
new
(
web_hook_params
)
@web_hook
.
save
layout
"project_settings"
if
@web_hook
.
valid?
redirect_to
ci_project_web_hooks_path
(
@project
)
else
@web_hooks
=
@project
.
web_hooks
.
select
(
&
:persisted?
)
render
:index
end
end
def
index
@web_hooks
=
@ci_project
.
web_hooks
@web_hook
=
Ci
::
WebHook
.
new
end
def
test
Ci
::
TestHookService
.
new
.
execute
(
hook
,
current_user
)
def
create
@web_hook
=
@ci_project
.
web_hooks
.
new
(
web_hook_params
)
@web_hook
.
save
redirect_to
:back
if
@web_hook
.
valid?
redirect_to
namespace_project_ci_web_hooks_path
(
@project
.
namespace
,
@project
)
else
@web_hooks
=
@ci_project
.
web_hooks
.
select
(
&
:persisted?
)
render
:index
end
end
def
destroy
hook
.
destroy
def
test
Ci
::
TestHookService
.
new
.
execute
(
hook
,
current_user
)
redirect_to
ci_project_web_hooks_path
(
@project
)
end
redirect_to
:back
end
private
def
destroy
hook
.
destroy
def
hook
@web_hook
||=
@project
.
web_hooks
.
find
(
params
[
:id
])
end
redirect_to
namespace_project_ci_web_hooks_path
(
@project
.
namespace
,
@project
)
end
def
project
@project
=
Ci
::
Project
.
find
(
params
[
:project_id
])
end
private
def
web_hook_params
params
.
require
(
:web_hook
).
permit
(
:url
)
end
def
hook
@web_hook
||=
@ci_project
.
web_hooks
.
find
(
params
[
:id
])
end
def
web_hook_params
params
.
require
(
:web_hook
).
permit
(
:url
)
end
end
app/views/layouts/ci/_nav_project.html.haml
View file @
39772f01
...
...
@@ -11,11 +11,6 @@
%span
Commits
%span
.count
=
@project
.
commits
.
count
=
nav_link
path:
'web_hooks#index'
do
=
link_to
ci_project_web_hooks_path
(
@project
)
do
=
icon
(
'link fw'
)
%span
Web Hooks
=
nav_link
path:
[
'services#index'
,
'services#edit'
]
do
=
link_to
ci_project_services_path
(
@project
)
do
=
icon
(
'share fw'
)
...
...
app/views/layouts/nav/_project_settings.html.haml
View file @
39772f01
...
...
@@ -50,6 +50,11 @@
=
icon
(
'retweet fw'
)
%span
Triggers
=
nav_link
path:
'ci_web_hooks#index'
do
=
link_to
namespace_project_ci_web_hooks_path
(
@project
.
namespace
,
@project
)
do
=
icon
(
'link fw'
)
%span
CI Web Hooks
=
nav_link
path:
'ci_settings#edit'
do
=
link_to
edit_namespace_project_ci_settings_path
(
@project
.
namespace
,
@project
)
do
=
icon
(
'building fw'
)
...
...
app/views/
ci/
web_hooks/index.html.haml
→
app/views/
projects/ci_
web_hooks/index.html.haml
View file @
39772f01
%h3
.page-title
Web hooks
CI
Web hooks
%p
.light
Web Hooks can be used for binding events when build completed.
%hr
.clearfix
=
form_for
[
:ci
,
@project
,
@web_hook
]
,
html:
{
class:
'form-horizontal'
}
do
|
f
|
=
form_for
@web_hook
,
url:
namespace_project_ci_web_hooks_path
(
@project
.
namespace
,
@project
)
,
html:
{
class:
'form-horizontal'
}
do
|
f
|
-
if
@web_hook
.
errors
.
any?
.alert.alert-danger
-
@web_hook
.
errors
.
full_messages
.
each
do
|
msg
|
...
...
@@ -28,9 +28,9 @@
%span
.monospace
=
hook
.
url
%td
.pull-right
-
if
@project
.
commits
.
any?
=
link_to
'Test Hook'
,
test_
ci_project_web_hook_path
(
@project
,
hook
),
class:
"btn btn-sm btn-grouped"
=
link_to
'Remove'
,
ci_project_web_hook_path
(
@project
,
hook
),
data:
{
confirm:
'Are you sure?'
},
method: :delete
,
class:
"btn btn-remove btn-sm btn-grouped"
-
if
@
ci_
project
.
commits
.
any?
=
link_to
'Test Hook'
,
test_
namespace_project_ci_web_hook_path
(
@project
.
namespace
,
@project
,
hook
),
class:
"btn btn-sm btn-grouped"
=
link_to
'Remove'
,
namespace_project_ci_web_hook_path
(
@project
.
namespace
,
@project
,
hook
),
data:
{
confirm:
'Are you sure?'
},
method: :delete
,
class:
"btn btn-remove btn-sm btn-grouped"
%h4
Web Hook data example
...
...
config/routes.rb
View file @
39772f01
...
...
@@ -47,12 +47,6 @@ Gitlab::Application.routes.draw do
end
end
resources
:web_hooks
,
only:
[
:index
,
:create
,
:destroy
]
do
member
do
get
:test
end
end
resources
:runner_projects
,
only:
[
:create
,
:destroy
]
resources
:events
,
only:
[
:index
]
...
...
@@ -591,6 +585,11 @@ Gitlab::Application.routes.draw do
resource
:variables
,
only:
[
:show
,
:update
]
resources
:triggers
,
only:
[
:index
,
:create
,
:destroy
]
resource
:ci_settings
,
only:
[
:edit
,
:update
,
:destroy
]
resources
:ci_web_hooks
,
only:
[
:index
,
:create
,
:destroy
]
do
member
do
get
:test
end
end
resources
:hooks
,
only:
[
:index
,
:create
,
:destroy
],
constraints:
{
id:
/\d+/
}
do
member
do
...
...
spec/features/ci_web_hooks_spec.rb
0 → 100644
View file @
39772f01
require
'spec_helper'
describe
'CI web hooks'
do
let
(
:user
)
{
create
(
:user
)
}
before
{
login_as
(
user
)
}
before
do
@project
=
FactoryGirl
.
create
:ci_project
@gl_project
=
@project
.
gl_project
@gl_project
.
team
<<
[
user
,
:master
]
visit
namespace_project_ci_web_hooks_path
(
@gl_project
.
namespace
,
@gl_project
)
end
context
'create a trigger'
do
before
do
fill_in
'web_hook_url'
,
with:
'http://example.com'
click_on
'Add Web Hook'
end
it
{
expect
(
@project
.
web_hooks
.
count
).
to
eq
(
1
)
}
it
'revokes the trigger'
do
click_on
'Remove'
expect
(
@project
.
web_hooks
.
count
).
to
eq
(
0
)
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