diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/api.rb | 1 | ||||
| -rw-r--r-- | lib/api/system_hooks.rb | 60 | ||||
| -rw-r--r-- | lib/extracts_path.rb | 6 |
3 files changed, 61 insertions, 6 deletions
diff --git a/lib/api.rb b/lib/api.rb index da31a1519dd..2a9a0eb2842 100644 --- a/lib/api.rb +++ b/lib/api.rb @@ -20,5 +20,6 @@ module Gitlab mount MergeRequests mount Notes mount Internal + mount SystemHooks end end diff --git a/lib/api/system_hooks.rb b/lib/api/system_hooks.rb new file mode 100644 index 00000000000..665a1cdd0d2 --- /dev/null +++ b/lib/api/system_hooks.rb @@ -0,0 +1,60 @@ +module Gitlab
+ # Hooks API
+ class SystemHooks < Grape::API
+ before { authenticated_as_admin! }
+
+ resource :hooks do
+ # Get the list of system hooks
+ #
+ # Example Request:
+ # GET /hooks
+ get do
+ @hooks = SystemHook.all
+ present @hooks, with: Entities::Hook
+ end
+
+ # Create new system hook
+ #
+ # Parameters:
+ # url (required) - url for system hook
+ # Example Request
+ # POST /hooks
+ post do
+ attrs = attributes_for_keys [:url]
+ @hook = SystemHook.new attrs
+ if @hook.save
+ present @hook, with: Entities::Hook
+ else
+ not_found!
+ end
+ end
+
+ # Test a hook
+ #
+ # Example Request
+ # GET /hooks/:id
+ get ":id" do
+ @hook = SystemHook.find(params[:id])
+ data = {
+ event_name: "project_create",
+ name: "Ruby",
+ path: "ruby",
+ project_id: 1,
+ owner_name: "Someone",
+ owner_email: "example@gitlabhq.com"
+ }
+ @hook.execute(data)
+ data
+ end
+
+ # Delete a hook
+ #
+ # Example Request:
+ # DELETE /hooks/:id
+ delete ":id" do
+ @hook = SystemHook.find(params[:id])
+ @hook.destroy
+ end
+ end
+ end
+end
\ No newline at end of file diff --git a/lib/extracts_path.rb b/lib/extracts_path.rb index fd0050cfd5f..66b2f450545 100644 --- a/lib/extracts_path.rb +++ b/lib/extracts_path.rb @@ -105,12 +105,6 @@ module ExtractsPath # Automatically renders `not_found!` if a valid tree path could not be # resolved (e.g., when a user inserts an invalid path or ref). def assign_ref_vars - # Handle formats embedded in the id - if params[:id].ends_with?('.atom') - params[:id].gsub!(/\.atom$/, '') - request.format = :atom - end - path = CGI::unescape(request.fullpath.dup) @ref, @path = extract_ref(path) |
