Method run
has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
def run(path = '.')
path = File.expand_path(path)
gem_names = options[:runner].any? ? options[:runner] : ::Pronto::GemNames.new.to_a
gem_names.each do |gem_name|
Method format
has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
def format(messages, _repo, _patches)
messages.map do |message|
lineno = message.line.new_lineno if message.line
result = { level: message.level[0].upcase, message: message.msg }
Method paged_request
has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
def paged_request(url, query = {})
Enumerator.new do |yielder|
next_page_start = 0
loop do
response = get(url, query.merge(start: next_page_start))
Method initialize
has 6 arguments (exceeds 4 allowed). Consider refactoring.
def initialize(path, line, level, msg, commit_sha = nil, runner = nil)
Method run
has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
def run(patches)
patches = reject_excluded(config.excluded_files('all'), patches)
return [] if patches.none?
result = []
Method create_pull_comment
has 5 arguments (exceeds 4 allowed). Consider refactoring.
def create_pull_comment(slug, pull_id, body, path, position)
Method create_commit_comment
has 5 arguments (exceeds 4 allowed). Consider refactoring.
def create_commit_comment(slug, sha, body, path, position)
Method create_pull_comment
has 5 arguments (exceeds 4 allowed). Consider refactoring.
def create_pull_comment(slug, pull_id, body, path, position)
Similar blocks of code found in 2 locations. Consider refactoring.
def slug
return @config.github_slug if @config.github_slug
@slug ||= begin
@repo.remote_urls.map do |url|
hostname = Regexp.escape(@config.github_hostname)
Similar blocks of code found in 2 locations. Consider refactoring.
def slug
return @config.bitbucket_slug if @config.bitbucket_slug
@slug ||= begin
@repo.remote_urls.map do |url|
hostname = Regexp.escape(@config.bitbucket_hostname)
Method parse_comments
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
def parse_comments(values)
values.each do |value|
value.content = value.content['raw']
value.line_to = value.inline ? value.inline['to'] : 0
value.filename = value.inline ? value.inline['path'] : ''
Method remove_duplicate_comments
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
def remove_duplicate_comments(old_comments, new_comments)
new_comments.each_with_object([]) do |(key, comments), memo|
existing = old_comments[key]
comments = dedupe_comments(existing, comments) if existing
Method format_location
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
def format_location(message)
line = message.line
lineno = line.new_lineno if line
path = message.path
commit_sha = message.commit_sha