class ProspectusCircleci::Build
Helper for automatically adding build status check
Public Class Methods
new(repo_slug, params = {})
click to toggle source
# File lib/prospectus_circleci.rb, line 10 def initialize(repo_slug, params = {}) @repo_slug = repo_slug || raise('No repo specified') @options = params end
Public Instance Methods
extended(other)
click to toggle source
# File lib/prospectus_circleci.rb, line 15 def extended(other) # rubocop:disable Metrics/MethodLength actual_val, expected_val = parse_status other.deps do item do name 'circleci' expected do static set expected_val end actual do static set actual_val end end end end
Private Instance Methods
api_req(path)
click to toggle source
# File lib/prospectus_circleci.rb, line 48 def api_req(path) JSON.parse(open(url(path)).read) # rubocop:disable Security/Open end
base_url()
click to toggle source
# File lib/prospectus_circleci.rb, line 56 def base_url @base_url ||= @options[:base_url] || 'https://circleci.com' end
parse_status()
click to toggle source
# File lib/prospectus_circleci.rb, line 37 def parse_status return [status, status] if GOOD_STATUSES.include?(status) [status, 'success'] end
status()
click to toggle source
# File lib/prospectus_circleci.rb, line 42 def status return @status if @status build = api_req("project/github/#{@repo_slug}").first @status = build ? build['status'] : 'new' end
token()
click to toggle source
# File lib/prospectus_circleci.rb, line 60 def token return @token if @token credential = Keylime.new(server: base_url) msg = "CircleCI Token (#{base_url}/account/api)" @token = credential.get!(msg).password end
url(path)
click to toggle source
# File lib/prospectus_circleci.rb, line 52 def url(path) "#{base_url}/api/v1.1/#{path}?circle-token=#{token}" end