class Danger::Detekt

Constants

VERSION

Public Instance Methods

detekt_exists?() click to toggle source
# File lib/danger/detekt.rb, line 36
def detekt_exists?
  system 'which detekt > /dev/null 2>&1'
end
run() click to toggle source
# File lib/danger/detekt.rb, line 5
def run()
  unless detekt_exists?
    fail("You should install detekt first.")
    return
  end

  targets = target_files(git.added_files + git.modified_files)
  return if targets.empty?

  results = JSON.parse(`detekt #{targets.join(' ')} --reporter=json --relative`)
  return if results.empty?

  send_markdown_comment(results)
end
send_markdown_comment(results) click to toggle source
# File lib/danger/detekt.rb, line 26
def send_markdown_comment(results)
  results.each {|result|
    result['errors'].each {|error|
      file = "#{result['file']}#L#{error['line']}"
      message = "#{github.html_link(file)}: #{error['message']}"
      fail(message)
    }
  }
end
target_files(changed_files) click to toggle source
# File lib/danger/detekt.rb, line 20
def target_files(changed_files)
  changed_files.select do |file|
    file.end_with?('.kt')
  end
end