Sha256: b5f863232a243ffe59bca4e069a5e2c875cba806620daceebb244424dc1ce3ec

Contents?: true

Size: 908 Bytes

Versions: 2

Compression:

Stored size: 908 Bytes

Contents

# frozen_string_literal: true
require 'httparty'
require 'json'
require 'pronto'
require 'pronto/commentator'
require 'circlemator/pr_finder'

module Circlemator
  class CodeAnalyser
    def initialize(opts)
      @opts = opts
      @base_branch = opts.fetch(:base_branch)
    end

    def check_coverage
      require 'pronto/undercover'
      run_pronto
    end

    def check_style
      require 'pronto/rubocop'
      run_pronto
    end

    def check_security
      require 'pronto/brakeman'
      run_pronto
    end

    private

    def run_pronto
      Pronto.run("origin/#{@base_branch}", '.', formatter)
    end

    def formatter
      pr_number, _ = PrFinder.new(@opts).find_pr
      if pr_number
        ENV['PRONTO_PULL_REQUEST_ID'] = pr_number.to_s
        Pronto::Formatter::GithubPullRequestFormatter.new
      else
        Pronto::Formatter::GithubFormatter.new
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
circlemator-0.6.0 lib/circlemator/code_analyser.rb
circlemator-0.5.0 lib/circlemator/code_analyser.rb