libertarian-party/partynest

View on GitHub
Rakefile

Summary

Maintainability
Test Coverage
# frozen_string_literal: true

require_relative 'config/application'

Rails.application.load_tasks

desc 'Run all checks'
task all: %i[default extra]

desc 'Run common checks (test, lint...)'
task default: :lint

desc 'Run linting tools (RuboCop)'
task lint: :rubocop

desc 'Run additional checks'
task extra: %i[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
      # Ignore CVE-2015-9284 because it is already solved
      # by using gem `omniauth-rails_csrf_protection`
      Bundler::Audit::CLI.start ['check', '--ignore', 'CVE-2015-9284']
    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',
    # Ignore UnscopedFind because we use Pundit
    '--except',
    'UnscopedFind',
  )
end