From a2cfb7f817cc2eaddb56f095a08e12eb3de0626a Mon Sep 17 00:00:00 2001 From: Kyle Rames Date: Mon, 8 Oct 2018 13:17:39 -0500 Subject: [PATCH] Add support for Version API --- lib/gitlab/client.rb | 1 + lib/gitlab/client/versions.rb | 18 ++++++++++++++++++ spec/fixtures/version.json | 4 ++++ spec/gitlab/client/versions_spec.rb | 22 ++++++++++++++++++++++ 4 files changed, 45 insertions(+) create mode 100644 lib/gitlab/client/versions.rb create mode 100644 spec/fixtures/version.json create mode 100644 spec/gitlab/client/versions_spec.rb diff --git a/lib/gitlab/client.rb b/lib/gitlab/client.rb index 0c11e8e14..adb340545 100644 --- a/lib/gitlab/client.rb +++ b/lib/gitlab/client.rb @@ -41,6 +41,7 @@ class Client < API include Tags include Todos include Users + include Versions # Text representation of the client, masking private token. # diff --git a/lib/gitlab/client/versions.rb b/lib/gitlab/client/versions.rb new file mode 100644 index 000000000..fb11ab198 --- /dev/null +++ b/lib/gitlab/client/versions.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class Gitlab::Client + # Defines methods related to version + # @see https://docs.gitlab.com/ce/api/version.html + module Versions + # Returns server version. + # @see https://docs.gitlab.com/ce/api/version.html + # + # @example + # Gitlab.version + # + # @return [Array] + def version + get('/version') + end + end +end diff --git a/spec/fixtures/version.json b/spec/fixtures/version.json new file mode 100644 index 000000000..abb214fcb --- /dev/null +++ b/spec/fixtures/version.json @@ -0,0 +1,4 @@ +{ + "version": "8.13.0-pre", + "revision": "4e963fe" +} diff --git a/spec/gitlab/client/versions_spec.rb b/spec/gitlab/client/versions_spec.rb new file mode 100644 index 000000000..61f9e5346 --- /dev/null +++ b/spec/gitlab/client/versions_spec.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Client do + describe '.version' do + before do + stub_get('/version', 'version') + end + + let!(:version) { Gitlab.version } + + it 'gets the correct resource' do + expect(a_get('/version')).to have_been_made + end + + it 'returns information about gitlab server' do + expect(version.version).to eq('8.13.0-pre') + expect(version.revision).to eq('4e963fe') + end + end +end