summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/api/entities.rb10
-rw-r--r--lib/api/triggers.rb18
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 26e7c956e8f..bc0cd76a2b8 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -365,5 +365,15 @@ module API
class TriggerRequest < Grape::Entity
expose :id, :variables
end
+
+ class Trigger < Grape::Entity
+ expose :id, :token, :created_at, :updated_at, :deleted_at
+ expose :last_used do |repo_obj, _options|
+ if repo_obj.respond_to?(:last_trigger_request)
+ request = repo_obj.last_trigger_request
+ request.created_at if request
+ end
+ end
+ end
end
end
diff --git a/lib/api/triggers.rb b/lib/api/triggers.rb
index 2781f1cf191..9a1e3fdc976 100644
--- a/lib/api/triggers.rb
+++ b/lib/api/triggers.rb
@@ -43,6 +43,24 @@ module API
render_api_error!(errors, 400)
end
end
+
+ # Get triggers list
+ #
+ # Parameters:
+ # id (required) - The ID of a project
+ # page (optional) - The page number for pagination
+ # per_page (optional) - The value of items per page to show
+ # Example Request:
+ # GET /projects/:id/triggers
+ get ':id/triggers' do
+ authenticate!
+ authorize_admin_project
+
+ triggers = user_project.triggers.includes(:trigger_requests)
+ triggers = paginate(triggers)
+
+ present triggers, with: Entities::Trigger
+ end
end
end
end