summaryrefslogtreecommitdiff
path: root/lib/api/version.rb
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2019-01-24 16:23:57 +0000
committerNick Thomas <nick@gitlab.com>2019-03-05 15:00:32 +0000
commit21779d00186d75349165d6c07dbe04aace68017c (patch)
tree25aaf112b51d6f5360a3e97db6f31f98a642660e /lib/api/version.rb
parent42d3117f9c3371e07e8b0aafab6f504e87251c2a (diff)
downloadgitlab-ce-21779d00186d75349165d6c07dbe04aace68017c.tar.gz
Add metadata about the GitLab server to GraphQL
Diffstat (limited to 'lib/api/version.rb')
-rw-r--r--lib/api/version.rb18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/api/version.rb b/lib/api/version.rb
index 74cd857f447..eca1b529094 100644
--- a/lib/api/version.rb
+++ b/lib/api/version.rb
@@ -2,13 +2,29 @@
module API
class Version < Grape::API
+ helpers ::API::Helpers::GraphqlHelpers
+
before { authenticate! }
+ METADATA_QUERY = <<~EOF
+ {
+ metadata {
+ version
+ revision
+ }
+ }
+ EOF
+
desc 'Get the version information of the GitLab instance.' do
detail 'This feature was introduced in GitLab 8.13.'
end
get '/version' do
- { version: Gitlab::VERSION, revision: Gitlab.revision }
+ conditionally_graphql!(
+ query: METADATA_QUERY,
+ context: { current_user: current_user },
+ transform: ->(result) { result.dig('data', 'metadata') },
+ fallback: -> { { version: Gitlab::VERSION, revision: Gitlab.revision } }
+ )
end
end
end