Class: Legion::CLI::Review

Inherits:
Thor
  • Object
show all
Defined in:
lib/legion/cli/review_command.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/legion/cli/review_command.rb', line 12

def self.exit_on_failure?
  true
end

Instance Method Details

#diffObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/legion/cli/review_command.rb', line 30

def diff
  out = formatter
  setup_connection

  diff_text, context = fetch_diff(out)
  if diff_text.strip.empty?
    out.error('No changes to review.')
    raise SystemExit, 1
  end

  out.header('Reviewing code changes...')
  review = run_review(diff_text, context)

  if options[:json]
    out.json(review)
    return
  end

  display_review(out, review)

  apply_fixes(out, review[:fixes]) if options[:fix] && review[:fixes]&.any?

  exit(1) if review[:findings].any? { |f| f[:severity] == 'critical' }
rescue CLI::Error => e
  out.error(e.message)
  raise SystemExit, 1
ensure
  Connection.shutdown if Connection.respond_to?(:shutdown)
end