class Codeowners::Cli::Main
Command Line Interface used by bin/codeowners-checker.
Public Instance Methods
check(repo = '.')
click to toggle source
for pre-commit: –from HEAD –to index
# File lib/codeowners/cli/main.rb, line 25 def check(repo = '.') checker = create_checker(repo) Warner.warn("No whitelist found at #{checker.whitelist_filename}") unless checker.whitelist? if checker.consistent? Reporter.print '✅ File is consistent' exit 0 end options[:interactive] ? interactive_mode(checker) : report_inconsistencies(checker) exit(-1) end
Private Instance Methods
create_checker(repo)
click to toggle source
# File lib/codeowners/cli/main.rb, line 65 def create_checker(repo) from = options[:from] to = options[:to] != 'index' ? options[:to] : nil checker = Codeowners::Checker.new(repo, from, to) checker.owners_list.validate_owners = options[:validateowners] checker end
interactive_mode(checker)
click to toggle source
# File lib/codeowners/cli/main.rb, line 51 def interactive_mode(checker) runner = InteractiveRunner.new runner.validate_owners = options[:validateowners] runner.default_owner = @config.default_owner runner.autocommit = options[:autocommit] runner.run_with(checker) end
report_errors!(checker)
click to toggle source
# File lib/codeowners/cli/main.rb, line 73 def report_errors!(checker) checker.fix!.reduce(nil) do |prev_error_type, (error_type, inconsistencies, meta)| Reporter.print_delimiter_line(error_type) if prev_error_type != error_type Reporter.print_error(error_type, inconsistencies, meta) error_type end end
report_inconsistencies(checker)
click to toggle source
# File lib/codeowners/cli/main.rb, line 60 def report_inconsistencies(checker) Reporter.print "File #{checker.codeowners.filename} is inconsistent:" report_errors!(checker) end