class CC::PullRequests

Public Instance Methods

receive_pull_request() click to toggle source
# File lib/cc/pull_requests.rb, line 8
def receive_pull_request
  setup_http
  state = @payload["state"]

  if %w[pending success failure skipped error].include?(state) && report_status?
    send("update_status_#{state}")
  else
    @response = simple_failure("Unknown state")
  end

  response
end
receive_pull_request_coverage() click to toggle source
# File lib/cc/pull_requests.rb, line 21
def receive_pull_request_coverage
  setup_http
  state = @payload["state"]

  if state == "success" && report_status?
    update_coverage_status_success
  else
    @response = simple_failure("Unknown state")
  end

  response
end
receive_test() click to toggle source
# File lib/cc/pull_requests.rb, line 2
def receive_test
  setup_http

  receive_test_status
end

Private Instance Methods

base_status_url(_commit_sha) click to toggle source
# File lib/cc/pull_requests.rb, line 112
def base_status_url(_commit_sha)
  raise NotImplementedError
end
commit_sha() click to toggle source
# File lib/cc/pull_requests.rb, line 120
def commit_sha
  @payload.fetch("commit_sha")
end
git_url() click to toggle source
# File lib/cc/pull_requests.rb, line 128
def git_url
  @git_url ||= URI.parse(@payload.fetch("git_url"))
end
number() click to toggle source
# File lib/cc/pull_requests.rb, line 124
def number
  @payload.fetch("number")
end
presenter() click to toggle source
# File lib/cc/pull_requests.rb, line 94
def presenter
  CC::Service::PullRequestsPresenter.new(@payload)
end
receive_test_status() click to toggle source
# File lib/cc/pull_requests.rb, line 76
def receive_test_status
  url = base_status_url("0" * 40)
  params = { state: "success" }
  raw_post(url, params.to_json)
rescue CC::Service::HTTPError => e
  if e.status == test_status_code
    {
      ok: true,
      params: params.as_json,
      status: e.status,
      endpoint_url: url,
      message: "Access token is valid",
    }
  else
    raise
  end
end
report_status?() click to toggle source
# File lib/cc/pull_requests.rb, line 36
def report_status?
  raise NotImplementedError
end
response() click to toggle source
# File lib/cc/pull_requests.rb, line 44
def response
  @response || simple_failure("Nothing happened")
end
setup_http() click to toggle source
# File lib/cc/pull_requests.rb, line 116
def setup_http
  raise NotImplementedError
end
simple_failure(message) click to toggle source
# File lib/cc/pull_requests.rb, line 40
def simple_failure(message)
  { ok: false, message: message }
end
status_url() click to toggle source
# File lib/cc/pull_requests.rb, line 108
def status_url
  base_status_url(commit_sha)
end
test_status_code() click to toggle source
# File lib/cc/pull_requests.rb, line 72
def test_status_code
  raise NotImplementedError
end
update_coverage_status_success() click to toggle source
# File lib/cc/pull_requests.rb, line 56
def update_coverage_status_success
  raise NotImplementedError
end
update_status(state, description, context = config.context) click to toggle source
# File lib/cc/pull_requests.rb, line 98
def update_status(state, description, context = config.context)
  params = {
    context: context,
    description: description,
    state: state,
    target_url: @payload["details_url"],
  }
  @response = service_post(status_url, params.to_json)
end
update_status_error() click to toggle source
# File lib/cc/pull_requests.rb, line 64
def update_status_error
  raise NotImplementedError
end
update_status_failure() click to toggle source
# File lib/cc/pull_requests.rb, line 60
def update_status_failure
  raise NotImplementedError
end
update_status_pending() click to toggle source
# File lib/cc/pull_requests.rb, line 68
def update_status_pending
  raise NotImplementedError
end
update_status_skipped() click to toggle source
# File lib/cc/pull_requests.rb, line 48
def update_status_skipped
  raise NotImplementedError
end
update_status_success() click to toggle source
# File lib/cc/pull_requests.rb, line 52
def update_status_success
  raise NotImplementedError
end