1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
# frozen_string_literal: true
module API
class UsageDataServicePing < UsageData
before { authenticate_non_get! }
allow_access_with_scope :read_service_ping
namespace 'usage_data' do
resource :service_ping do
before do
authenticated_as_admin!
end
desc 'Get the latest ServicePing payload' do
detail 'Introduces in Gitlab 16.9. Requires personal access token with read_service_ping scope.'
success code: 200
failure [
{ code: 401, message: '401 Unauthorized' },
{ code: 403, message: 'Forbidden' },
{ code: 404, message: 'Not found' }
]
tags %w[usage_data]
produces ['application/json']
end
get do
content_type 'application/json'
Gitlab::InternalEvents.track_event('request_service_ping_via_rest', user: current_user)
Rails.cache.fetch(Gitlab::Usage::ServicePingReport::CACHE_KEY) ||
::RawUsageData.for_current_reporting_cycle.first&.payload || {}
end
end
end
end
end
|