class CC::Service::StashPullRequests

Constants

STASH_STATES

Public Instance Methods

receive_pull_request() click to toggle source
# File lib/cc/services/stash_pull_requests.rb, line 37
def receive_pull_request
  setup_http

  params = {
    description: description,
    key: "Code Climate",
    name: "Code Climate",
    state: state,
    url:  @payload["details_url"],
  }
  service_post(url, params.to_json)
end
receive_test() click to toggle source
# File lib/cc/services/stash_pull_requests.rb, line 27
def receive_test
  setup_http

  service_get(test_url)

  { ok: true, message: "Test succeeded" }
rescue HTTPError => e
  { ok: false, message: e.message }
end

Private Instance Methods

auth_token() click to toggle source

Following Basic Auth headers here: developer.atlassian.com/stash/docs/latest/how-tos/example-basic-authentication.html

# File lib/cc/services/stash_pull_requests.rb, line 91
def auth_token
  Base64.encode64("#{config.username}:#{config.password}")
end
commit_sha() click to toggle source
# File lib/cc/services/stash_pull_requests.rb, line 60
def commit_sha
  @payload.fetch("commit_sha")
end
description() click to toggle source
# File lib/cc/services/stash_pull_requests.rb, line 64
def description
  return @payload["message"] if @payload["message"]

  case @payload["state"]
  when "pending"
    presenter.pending_message
  when "success", "failure"
    presenter.success_message
  when "skipped"
    presenter.skipped_message
  when "error"
    presenter.error_message
  end
end
presenter() click to toggle source
# File lib/cc/services/stash_pull_requests.rb, line 95
def presenter
  CC::Service::PullRequestsPresenter.new(@payload)
end
setup_http() click to toggle source
# File lib/cc/services/stash_pull_requests.rb, line 83
def setup_http
  http.headers["Content-Type"] = "application/json"
  http.headers["Authorization"] = "Basic #{auth_token}"
  http.headers["User-Agent"] = "Code Climate"
end
state() click to toggle source
# File lib/cc/services/stash_pull_requests.rb, line 79
def state
  STASH_STATES[@payload["state"]]
end
test_url() click to toggle source
# File lib/cc/services/stash_pull_requests.rb, line 52
def test_url
  "https://#{config.domain}/rest/api/1.0/users"
end
url() click to toggle source
# File lib/cc/services/stash_pull_requests.rb, line 56
def url
  "https://#{config.domain}/rest/build-status/1.0/commits/#{commit_sha}"
end