summaryrefslogtreecommitdiff
path: root/lib/api/project_statistics.rb
diff options
context:
space:
mode:
authorJacopo <beschi.jacopo@gmail.com>2018-12-13 20:26:56 +0100
committerJacopo <beschi.jacopo@gmail.com>2019-02-27 11:52:35 +0100
commit5ae9a44aa17c8929627cc450f936cd960c143e25 (patch)
tree6a14d388f5687979a683d443868b4297ebc6838c /lib/api/project_statistics.rb
parent6fa88ed77e1693cda845efe49bf2c9a77aed2e4f (diff)
downloadgitlab-ce-5ae9a44aa17c8929627cc450f936cd960c143e25.tar.gz
Add project http fetch statistics API
The API get projects/:id/traffic/fetches allows user with write access to the repository to get the number of clones for the last 30 days.
Diffstat (limited to 'lib/api/project_statistics.rb')
-rw-r--r--lib/api/project_statistics.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/api/project_statistics.rb b/lib/api/project_statistics.rb
new file mode 100644
index 00000000000..2f73785f72d
--- /dev/null
+++ b/lib/api/project_statistics.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+module API
+ class ProjectStatistics < Grape::API
+ before do
+ authenticate!
+ not_found! unless user_project.daily_statistics_enabled?
+ authorize! :daily_statistics, user_project
+ end
+
+ params do
+ requires :id, type: String, desc: 'The ID of a project'
+ end
+ resource :projects, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do
+ desc 'Get the list of project fetch statistics for the last 30 days'
+ get ":id/statistics" do
+ statistic_finder = ::Projects::DailyStatisticsFinder.new(user_project)
+
+ present statistic_finder, with: Entities::ProjectDailyStatistics
+ end
+ end
+ end
+end