class Accesslint::Ci::LogManager

Public Class Methods

get() click to toggle source
# File lib/accesslint/ci/log_manager.rb, line 8
def self.get
  new.get
end

Public Instance Methods

get() click to toggle source
# File lib/accesslint/ci/log_manager.rb, line 12
def get
  RestClient.get(artifact_url)
rescue MissingArtifactError => e
  puts e.message
  "\n"
end

Private Instance Methods

artifact_url() click to toggle source
# File lib/accesslint/ci/log_manager.rb, line 21
def artifact_url
  artifact = artifacts.first do |artifact|
    artifact["path"].end_with?("accesslint.log")
  end

  if artifact
    @artifact_url ||= artifact.fetch("url")
  else
    raise MissingArtifactError.new("No existing logs for comparison.")
  end
end
artifacts() click to toggle source
# File lib/accesslint/ci/log_manager.rb, line 33
def artifacts
  @artifacts ||= JSON.parse(
    RestClient.get(artifacts_url)
  )
rescue RestClient::NotFound => e
  raise MissingArtifactError.new(
    "No existing artifacts at #{artifacts_url}: #{e.message}"
  )
end
artifacts_url() click to toggle source
# File lib/accesslint/ci/log_manager.rb, line 43
def artifacts_url
  uri = URI.join(
    "https://circleci.com/",
    "api/v1/project/",
    project_path,
    "latest/artifacts",
  )

  "#{uri}?#{query}"
end
branch() click to toggle source
# File lib/accesslint/ci/log_manager.rb, line 68
def branch
  ENV.fetch("ACCESSLINT_MASTER_BRANCH", "master")
end
project_path() click to toggle source
# File lib/accesslint/ci/log_manager.rb, line 54
def project_path
  [
    ENV.fetch("CIRCLE_PROJECT_USERNAME"),
    ENV.fetch("CIRCLE_PROJECT_REPONAME"),
  ].join("/") + "/"
end
query() click to toggle source
# File lib/accesslint/ci/log_manager.rb, line 61
def query
  URI.encode_www_form([
    ["branch", branch],
    ["filter", "successful"],
  ])
end