class Gitlab::QA::Component::Staging::Version

Attributes

uri[R]

Public Class Methods

new(address) click to toggle source
# File lib/gitlab/qa/component/staging.rb, line 60
def initialize(address)
  @uri = URI.join(address, '/api/v4/version')

  Runtime::Env.require_qa_access_token!
end

Public Instance Methods

major_minor_revision() click to toggle source
# File lib/gitlab/qa/component/staging.rb, line 70
def major_minor_revision
  api_response = api_get!
  version_regexp = /^v?(?<major>\d+)\.(?<minor>\d+)\.\d+/
  match = version_regexp.match(api_response.fetch('version'))

  "#{match[:major]}.#{match[:minor]}-#{api_response.fetch('revision')}"
end
tag_end() click to toggle source
# File lib/gitlab/qa/component/staging.rb, line 66
def tag_end
  official? ? version : revision
end

Private Instance Methods

api_get!() click to toggle source
# File lib/gitlab/qa/component/staging.rb, line 92
def api_get!
  @response_body ||= # rubocop:disable Naming/MemoizedInstanceVariableName
    begin
      response = Support::GetRequest.new(uri, Runtime::Env.qa_access_token).execute!
      JSON.parse(response.body)
    end
end
official?() click to toggle source
# File lib/gitlab/qa/component/staging.rb, line 80
def official?
  QA::Release::DEV_OFFICIAL_TAG_REGEX.match?(version)
end
revision() click to toggle source
# File lib/gitlab/qa/component/staging.rb, line 84
def revision
  api_get!.fetch('revision')
end
version() click to toggle source
# File lib/gitlab/qa/component/staging.rb, line 88
def version
  api_get!.fetch('version')
end