# frozen_string_literal: true require_relative 'config/application' Rails.application.load_tasks desc 'Run all checks (test, lint...)' task default: :lint desc 'Run all code analysis tools (RuboCop...)' task lint: %i[rubocop bundler:audit brakeman] desc 'Fix code style (rubocop --auto-correct)' task fix: 'rubocop:auto_correct' begin require 'coveralls/rake/task' Coveralls::RakeTask.new rescue LoadError nil end begin require 'rubocop/rake_task' RuboCop::RakeTask.new rescue LoadError nil end begin require 'yard' YARD::Rake::YardocTask.new rescue LoadError nil end namespace :bundler do require 'bundler/audit/cli' desc 'Updates the ruby-advisory-db and ' \ 'checks the Gemfile.lock for insecure dependencies' task audit: %i[audit:update audit:check] namespace :audit do desc 'Updates the ruby-advisory-db' task :update do Bundler::Audit::CLI.start ['update'] end desc 'Checks the Gemfile.lock for insecure dependencies' task :check do Bundler::Audit::CLI.start ['check'] end end rescue LoadError nil end desc 'Detects security vulnerabilities via static analysis' task :brakeman do sh( 'bundle', 'exec', 'brakeman', Rails.root.to_s, '--confidence-level', '1', '--run-all-checks', ) end