Sha256: d0c7cc79caec2048f43f195ec844b60cdb1dc0d81f6f475b017f07b0a649128a
Contents?: true
Size: 1.75 KB
Versions: 2
Compression:
Stored size: 1.75 KB
Contents
# frozen_string_literal: true module GitHubPages module HealthCheck class Repository < Checkable attr_reader :name, :owner REPO_REGEX = %r{\A[a-z0-9_\-]+/[a-z0-9_\-\.]+\z}i HASH_METHODS = %i[ name_with_owner built? last_built build_duration build_error ].freeze def initialize(name_with_owner, access_token: nil) unless name_with_owner =~ 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 name_with_owner @name_with_owner ||= [owner, name].join("/") end alias nwo name_with_owner def check! raise Errors::BuildError.new(:repository => self), build_error unless built? true end def last_build @last_build ||= client.latest_pages_build(name_with_owner) end def built? last_build && last_build.status == "built" end def build_error last_build.error["message"] unless built? end alias reason build_error def build_duration last_build.duration if last_build end def last_built last_build.updated_at if last_build end def domain return if cname.nil? @domain ||= GitHubPages::HealthCheck::Domain.new(cname) end private def client raise Errors::MissingAccessTokenError if @access_token.nil? @client ||= Octokit::Client.new(:access_token => @access_token) end def pages_info @pages_info ||= client.pages(name_with_owner) end def cname pages_info.cname end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
github-pages-health-check-1.3.6 | lib/github-pages-health-check/repository.rb |
github-pages-health-check-1.4.0 | lib/github-pages-health-check/repository.rb |