Sha256: e1588bad39cf13dfbdf8c522724bb3e6b4cd580e6868286407a376fa455726cf

Contents?: true

Size: 1.72 KB

Versions: 5

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/v4/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

5 entries across 5 versions & 1 rubygems

Version Path
codeclimate-services-1.11.4 lib/cc/services/gitlab_merge_requests.rb
codeclimate-services-1.11.3 lib/cc/services/gitlab_merge_requests.rb
codeclimate-services-1.11.2 lib/cc/services/gitlab_merge_requests.rb
codeclimate-services-1.11.1 lib/cc/services/gitlab_merge_requests.rb
codeclimate-services-1.11.0 lib/cc/services/gitlab_merge_requests.rb