class ProspectusDockerhub::Build

Helper for automatically adding build status check

Public Class Methods

new(repo_slug) click to toggle source
# File lib/prospectus_dockerhub.rb, line 29
def initialize(repo_slug)
  @repo_slug = repo_slug || raise('No repo specified')
end

Public Instance Methods

extended(other) click to toggle source
# File lib/prospectus_dockerhub.rb, line 33
def extended(other) # rubocop:disable Metrics/MethodLength
  actual_val, expected_val = parse_status

  other.deps do
    item do
      name 'dockerhub'

      expected do
        static
        set expected_val
      end

      actual do
        static
        set actual_val
      end
    end
  end
end

Private Instance Methods

base_url() click to toggle source
# File lib/prospectus_dockerhub.rb, line 76
def base_url
  'https://hub.docker.com/v2/repositories'
end
json() click to toggle source
# File lib/prospectus_dockerhub.rb, line 68
def json
  @json ||= JSON.parse(open(url).read) # rubocop:disable Security/Open
end
parse_status() click to toggle source
# File lib/prospectus_dockerhub.rb, line 55
def parse_status
  return [status, status] if GOOD_STATUSES.include?(status)
  [status, 'done']
end
status() click to toggle source
# File lib/prospectus_dockerhub.rb, line 60
def status
  @status ||= STATUS_MAP[status_code]
end
status_code() click to toggle source
# File lib/prospectus_dockerhub.rb, line 64
def status_code
  @status_code ||= json['results'].first['status']
end
url() click to toggle source
# File lib/prospectus_dockerhub.rb, line 72
def url
  "#{base_url}/#{@repo_slug}/buildhistory/?page_size=1&page=1"
end