Files
gitlab-ce/lib/api/usage_data_service_ping.rb
2024-11-26 18:29:55 +00:00

39 lines
1.1 KiB
Ruby

# 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