diff options
Diffstat (limited to 'lib/api/metadata.rb')
-rw-r--r-- | lib/api/metadata.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/api/metadata.rb b/lib/api/metadata.rb new file mode 100644 index 00000000000..c4984f0e7f0 --- /dev/null +++ b/lib/api/metadata.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +module API + class Metadata < ::API::Base + helpers ::API::Helpers::GraphqlHelpers + include APIGuard + + allow_access_with_scope :read_user, if: -> (request) { request.get? || request.head? } + + before { authenticate! } + + feature_category :not_owned # rubocop:todo Gitlab/AvoidFeatureCategoryNotOwned + + METADATA_QUERY = <<~EOF + { + metadata { + version + revision + kas { + enabled + externalUrl + version + } + } + } + EOF + + desc 'Get the metadata information of the GitLab instance.' do + detail 'This feature was introduced in GitLab 15.2.' + end + get '/metadata' do + run_graphql!( + query: METADATA_QUERY, + context: { current_user: current_user }, + transform: ->(result) { result.dig('data', 'metadata') } + ) + end + end +end |