class Escobar::Heroku::Build

Class representing a heroku build

Attributes

app_id[R]
client[R]
command_id[RW]
github_url[RW]
id[R]
pipeline_name[RW]
sha[RW]

Public Class Methods

new(client, app_id, id) click to toggle source
# File lib/escobar/heroku/build.rb, line 12
def initialize(client, app_id, id)
  @id            = id
  @app_id        = app_id
  @client        = client
end

Public Instance Methods

app() click to toggle source
# File lib/escobar/heroku/build.rb, line 34
def app
  @app ||= Escobar::Heroku::App.new(client, app_id)
end
dashboard_build_output_url() click to toggle source
# File lib/escobar/heroku/build.rb, line 38
def dashboard_build_output_url
  "https://dashboard.heroku.com/apps/#{app.name}/activity/builds/#{id}"
end
info() click to toggle source
# File lib/escobar/heroku/build.rb, line 18
def info
  @info ||= client.heroku.get("/apps/#{app_id}/builds/#{id}")
end
release_id() click to toggle source
# File lib/escobar/heroku/build.rb, line 30
def release_id
  info["release"]["id"]
end
releasing?() click to toggle source
# File lib/escobar/heroku/build.rb, line 26
def releasing?
  status == "succeeded" && !release_id.nil?
end
repository() click to toggle source
# File lib/escobar/heroku/build.rb, line 42
def repository
  github_url && github_url.match(Escobar::GitHub::REPOSITORY_REGEX)[1]
end
status() click to toggle source
# File lib/escobar/heroku/build.rb, line 22
def status
  info["status"]
end
to_job_json() click to toggle source
# File lib/escobar/heroku/build.rb, line 46
def to_job_json
  {
    sha: sha,
    pipeline_name: pipeline_name,
    repo: repository,
    app_id: app_id,
    app_name: app.name,
    build_id: id,
    command_id: command_id,
    target_url: dashboard_build_output_url,
    deployment_url: github_url
  }
end