Sha256: e81700bd22412bfc60287880bef4f27bfc67a932b4d61c0badd1ae5497c10364

Contents?: true

Size: 1.72 KB

Versions: 3

Compression:

Stored size: 1.72 KB

Contents

require "cc/presenters/pull_requests_presenter"

class CC::Service::GitlabMergeRequests < CC::PullRequests
  class Config < CC::Service::Config
    CONTEXT = "codeclimate".freeze

    attribute :access_token, Axiom::Types::Token,
      label: "Access Token",
      description: "A personal access token with permissions for the repo."
    attribute :base_url, Axiom::Types::String,
      label: "GitLab API Base URL",
      description: "Base URL for the GitLab API",
      default: "https://gitlab.com"

    def context
      CONTEXT
    end
  end

  self.title = "GitLab Merge Requests"
  self.description = "Update merge requests on GitLab"

  private

  def report_status?
    true
  end

  def update_status_skipped
    update_status("success", presenter.skipped_message)
  end

  def update_status_success
    update_status("success", presenter.success_message)
  end

  def update_coverage_status_success
    update_status("success", presenter.coverage_message, "#{config.context}/coverage")
  end

  def update_status_failure
    update_status("failed", presenter.success_message)
  end

  def update_status_error
    update_status(
      "failed",
      @payload["message"] || presenter.error_message,
    )
  end

  def update_status_pending
    update_status(
      "running",
      @payload["message"] || presenter.pending_message,
    )
  end

  def setup_http
    http.headers["Content-Type"] = "application/json"
    http.headers["PRIVATE-TOKEN"] = config.access_token
    http.headers["User-Agent"] = "Code Climate"
  end

  def base_status_url(commit_sha)
    "#{config.base_url}/api/v3/projects/#{CGI.escape(slug)}/statuses/#{commit_sha}"
  end

  def slug
    git_url.path.gsub(/(^\/|.git$)/, "")
  end

  def test_status_code
    404
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
codeclimate-services-1.10.1 lib/cc/services/gitlab_merge_requests.rb
codeclimate-services-1.10.0 lib/cc/services/gitlab_merge_requests.rb
codeclimate-services-1.9.8 lib/cc/services/gitlab_merge_requests.rb