Katello/katello

View on GitHub
.rubocop.yml

Summary

Maintainability
Test Coverage
require:
  - rubocop-performance
  - rubocop-rails
  - rubocop-minitest

# TODO: Remove the following once the rules in the file is addressed
inherit_from:
  - .rubocop_todo.yml
# end TODO

Rails:
  Enabled: true

Rails/ContentTag:
  Enabled: false

AllCops:
  Exclude:
    - db/migrate/20131014135042_katello_tables.rb
    - engines/*/node_modules/**/*
    - engines/bastion_katello/bastion-*/**/*
    - engines/bastion_katello/vendor/assets/dev-components/**/*
    - engines/bastion_katello/Rakefile
    - foreman/**/*
    - node_modules/**/*
    - Gemfile
    - locale/action_names.rb
    - lib/monkeys/remove_hidden_distribution.rb
    - vendor/**/*
  Include:
    - '**/*.rb'
    - app/views/**/*.rabl
    - '**/*.rake'
  TargetRubyVersion: 2.7

Metrics/MethodLength:
  Description: 'Avoid methods longer than 30 lines of code.'
  Max: 30 # default is 10
  CountAsOne:
    - array
    - hash
    - heredoc

Style/HashSyntax:
  Enabled: false # don't force 1.9 hash syntax

Rails/DynamicFindBy:
  Enabled: False
  Whitelist:
    - find_by_cp_id
    - find_by_katello_id
    - find_by_unit_id
    - find_by_version

Layout/SpaceInsideHashLiteralBraces:
  Enabled: false # allow spaces (eg { :a => 1 })

Layout/LeadingCommentSpace:
  Enabled: false

Style/IfUnlessModifier:
  Enabled: false

Style/RescueModifier:
  Enabled: false

Style/WhileUntilModifier:
  Enabled: false

Layout/ParameterAlignment:
  Enabled: false # don't care if parameters are not aligned

Layout/HashAlignment:
  EnforcedLastArgumentHashStyle: ignore_implicit # ignore argument hashes

Style/ParenthesesAroundCondition:
  Enabled: false

Layout/DotPosition:
  Enabled: false

Style/Lambda:
  Enabled: false # don't require -> for single line lambdas

Style/RedundantSelf:
  Enabled: false

Style/RedundantReturn:
  Enabled: false

Style/Documentation:
  Enabled: false # don't require documentation

Style/Encoding:
  Enabled: false # don't require utf-8 encoding on every file

Style/MethodCalledOnDoEndBlock:
  Enabled: true

Style/SingleLineBlockParams:
  Enabled: false

Metrics/ClassLength:
  Exclude:
    - 'test/models/content_view_test.rb'
    - 'test/controllers/api/v2/repositories_controller_test.rb'

Style/Next:
  Enabled: false # don't enforce next in loops over if/unless

Style/FormatString:
  Enabled: false # we use % for i18n

Style/GuardClause:
  Enabled: false # don't enforce this

Style/ClassVars:
  Enabled: True
  Exclude: ['test/**/*']

Style/StringLiterals:
  Enabled: false # dont't enforce

Style/WordArray:
  Enabled: false # don't force usage of %w()

Naming/FileName:
  Exclude: ['script/**', 'db/seeds.d/**'] # scripts are hyphened case

Rails/ScopeArgs:
  Enabled: false # don't force usage of lambdas for scopes

Style/EachWithObject:
  Enabled: false # people can use inject

Style/SymbolProc:
  Enabled: false # don't force usage of symbol procs

Style/SignalException:
  EnforcedStyle: semantic

# Don't enforce frozen string literals
Style/FrozenStringLiteralComment:
  Enabled: false

Gemspec/OrderedDependencies:
  Enabled: false

Style/CommentedKeyword:
  Enabled: false

Style/RescueStandardError:
  Enabled: false

# we use booleans as symbols for scoped search
Lint/BooleanSymbol:
  Enabled: false

Lint/UriEscapeUnescape:
  Enabled: false

Performance/RegexpMatch:
  Enabled: false

Minitest/GlobalExpectations:
  Enabled: true

Performance/CollectionLiteralInLoop:
  Enabled: false

Rails/RedundantForeignKey:
  Enabled: true

Rails/UniqueValidationWithoutIndex:
  Enabled: true