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.('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
|