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
e836b904
Commit
e836b904
authored
Oct 13, 2016
by
Robert Schilling
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Grapify system hooks API
parent
4b889dbb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
31 deletions
+29
-31
system_hooks.rb
lib/api/system_hooks.rb
+29
-31
No files found.
lib/api/system_hooks.rb
View file @
e836b904
...
...
@@ -7,38 +7,36 @@ module API
end
resource
:hooks
do
# Get the list of system hooks
#
# Example Request:
# GET /hooks
desc
'Get the list of system hooks'
do
success
Entities
::
Hook
end
get
do
@
hooks
=
SystemHook
.
all
present
@
hooks
,
with:
Entities
::
Hook
hooks
=
SystemHook
.
all
present
hooks
,
with:
Entities
::
Hook
end
# Create new system hook
#
# Parameters:
# url (required) - url for system hook
# Example Request
# POST /hooks
desc
'Create a new system hook'
do
success
Entities
::
Hook
end
params
do
requires
:url
,
type:
String
,
desc:
'The URL for the system hook'
end
post
do
attrs
=
attributes_for_keys
[
:url
]
required_attributes!
[
:url
]
@hook
=
SystemHook
.
new
attrs
if
@hook
.
save
present
@hook
,
with:
Entities
::
Hook
hook
=
SystemHook
.
new
declared
(
params
).
to_h
if
hook
.
save
present
hook
,
with:
Entities
::
Hook
else
not_found!
end
end
# Test a hook
#
# Example Request
# GET /hooks/:i
d
desc
'Test a hook'
params
do
requires
:id
,
type:
Integer
,
desc:
'The ID of the system hook'
en
d
get
":id"
do
@
hook
=
SystemHook
.
find
(
params
[
:id
])
hook
=
SystemHook
.
find
(
params
[
:id
])
data
=
{
event_name:
"project_create"
,
name:
"Ruby"
,
...
...
@@ -47,20 +45,20 @@ module API
owner_name:
"Someone"
,
owner_email:
"example@gitlabhq.com"
}
@
hook
.
execute
(
data
,
'system_hooks'
)
hook
.
execute
(
data
,
'system_hooks'
)
data
end
# Delete a hook. This is an idempotent function.
#
# Parameters:
# id (required) - ID of the hook
# Example Request:
# DELETE /hooks/:i
d
desc
'Delete a hook'
do
success
Entities
::
Hook
end
params
do
requires
:id
,
type:
Integer
,
desc:
'The ID of the system hook'
en
d
delete
":id"
do
begin
@
hook
=
SystemHook
.
find
(
params
[
:id
])
@hook
.
destroy
hook
=
SystemHook
.
find
(
params
[
:id
])
present
hook
.
destroy
,
with:
Entities
::
Hook
rescue
# SystemHook raises an Error if no hook with id found
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