class Dpl::Providers::Pages::Api

Constants

PAGES_PREVIEW_MEDIA_TYPE
TIMEOUTS

Public Instance Methods

deploy() click to toggle source
# File lib/dpl/providers/pages/api.rb, line 54
def deploy
  info :deploy

  api.request_page_build slug

  response = api.pages slug
  logger.debug response

  Timeout.timeout(30) do
    until response.status == 'built'
      response = api.pages slug
      logger.debug response
      sleep 1
    end
  end

  latest_pages_build = api.latest_pages_build slug
  if msg = latest_pages_build.error.message
    error "Build failed: #{msg}"
  end

  info "Pages deployed to #{response.html_url}, using commit #{latest_pages_build.commit}"
  logger.debug latest_pages_build
rescue Octokit::Forbidden => e
  error e.message
rescue Timeout::Error
  error :timeout
end
validate() click to toggle source
# File lib/dpl/providers/pages/api.rb, line 50
def validate
  error :not_found unless pages_enabled?
end

Private Instance Methods

api() click to toggle source
# File lib/dpl/providers/pages/api.rb, line 89
def api
  ::Octokit.default_media_type = PAGES_PREVIEW_MEDIA_TYPE unless @api

  @api ||= Octokit::Client.new(**creds, auto_paginate: true, connection_options: { request: TIMEOUTS })
end
creds() click to toggle source
# File lib/dpl/providers/pages/api.rb, line 95
def creds
  { access_token: token }
end
pages_enabled?() click to toggle source
# File lib/dpl/providers/pages/api.rb, line 99
def pages_enabled?
  api.pages slug
rescue Octokit::NotFound
  false
end
slug() click to toggle source
# File lib/dpl/providers/pages/api.rb, line 85
def slug
  repo || repo_slug
end