class GitHubPages::HealthCheck::Repository
def build_duration
def build_duration last_build&.duration end
def build_error
def build_error last_build.error["message"] unless built? end
def built?
def built? last_build && last_build.status == "built" end
def check!
def check! raise Errors::BuildError.new(:repository => self), build_error unless built? true end
def client
def client raise Errors::MissingAccessTokenError if @access_token.nil? @client ||= Octokit::Client.new(:access_token => @access_token) end
def cname
def cname pages_info.cname end
def domain
def domain return if cname.nil? @domain ||= GitHubPages::HealthCheck::Domain.redundant(cname) end
def initialize(name_with_owner, access_token: nil)
def initialize(name_with_owner, access_token: nil) unless name_with_owner.match(REPO_REGEX) raise Errors::InvalidRepositoryError end parts = name_with_owner.split("/") @owner = parts.first @name = parts.last @access_token = access_token || ENV["OCTOKIT_ACCESS_TOKEN"] end
def last_build
def last_build @last_build ||= client.latest_pages_build(name_with_owner) end
def last_built
def last_built last_build&.updated_at end
def name_with_owner
def name_with_owner @name_with_owner ||= [owner, name].join("/") end
def pages_info
def pages_info @pages_info ||= client.pages(name_with_owner) end