inherit_from: .rubocop_todo.yml AllCops: TargetRubyVersion: 3.1 TargetRailsVersion: 7.2 NewCops: enable Exclude: - '**/vendor/**/*' - '**/tmp/**/*' - '**/bin/**/*' - '**/plugins/**/*' - '**/extra/**/*' - '**/lib/generators/**/templates/*' - '**/lib/tasks/**/*' - '**/files/**/*' - 'db/schema.rb' # Enable extensions require: - rubocop-performance - rubocop-rails # Rules for Redmine Bundler/OrderedGems: Enabled: false Layout/CaseIndentation: Exclude: - 'config/initializers/10-patches.rb' Layout/ClosingParenthesisIndentation: Exclude: - 'lib/redmine/wiki_formatting/textile/redcloth3.rb' Layout/EmptyLinesAroundAccessModifier: Exclude: - 'config/initializers/10-patches.rb' Layout/EmptyLineBetweenDefs: AllowAdjacentOneLineDefs: true Layout/FirstHashElementIndentation: Exclude: - 'lib/redmine/wiki_formatting/textile/redcloth3.rb' Layout/LineLength: AllowedPatterns: ['\A\s+test \".+\" do\z', '\A\s*\#'] Exclude: - 'db/migrate/0*.rb' - 'db/migrate/1*.rb' - 'db/migrate/201*.rb' - 'db/migrate/20200*.rb' - 'lib/redmine/wiki_formatting/textile/redcloth3.rb' Layout/RescueEnsureAlignment: Exclude: - 'db/migrate/085_add_role_tracker_old_status_index_to_workflows.rb' Layout/SpaceAroundEqualsInParameterDefault: Enabled: false Layout/SpaceBeforeSemicolon: Exclude: - 'config/initializers/10-patches.rb' Layout/SpaceBeforeBlockBraces: # "space" is used more than "no_space". # But "no_space" is more natural in one liner. # str = path.to_s.split(%r{[/\\]}).select{|p| !p.blank?}.join("/") Enabled: false Layout/SpaceBeforeFirstArg: Enabled: false Layout/SpaceInsideBlockBraces: Enabled: false Layout/SpaceInsideHashLiteralBraces: Enabled: false Lint/MissingSuper: Exclude: - 'lib/redmine/views/builders/structure.rb' Lint/SuppressedException: AllowComments: true Layout/LineContinuationLeadingSpace: Enabled: false Layout/TrailingWhitespace: AllowInHeredoc: true Metrics: Enabled: false Naming/AccessorMethodName: Enabled: false Naming/VariableNumber: CheckMethodNames: false CheckSymbols: false Naming/BinaryOperatorParameterName: Enabled: false Naming/PredicateName: Enabled: false Performance/CollectionLiteralInLoop: MinSize: 4 Rails/ActionControllerFlashBeforeRender: # False positive in actions where `redirect_to_referer_or` is used Enabled: false Rails/ActionControllerTestCase: Enabled: false Rails/ActionOrder: Enabled: false Rails/ActiveSupportOnLoad: Exclude: # TODO: Need to check the impact on plugins. Disable for now. - 'lib/redmine/preparation.rb' Rails/ApplicationRecord: Exclude: - 'db/migrate/0*.rb' Rails/BulkChangeTable: Exclude: - 'db/migrate/20120714122200_add_workflows_rule_fields.rb' - 'db/migrate/20130217094251_remove_issues_default_fk_values.rb' - 'db/migrate/20131214094309_remove_custom_fields_min_max_length_default_values.rb' - 'db/migrate/20190510070108_add_unique_id_to_import_items.rb' - 'db/migrate/20200826153402_add_totp_to_user.rb' - 'db/migrate/20221012135202_add_index_to_custom_values.rb' Rails/CompactBlank: Enabled: false Rails/Delegate: Enabled: false Rails/EnvironmentVariableAccess: Enabled: false Rails/FilePath: Enabled: false Rails/FindEach: Enabled: false Rails/HelperInstanceVariable: Enabled: false Rails/Pluck: Exclude: # `pluck` is not available in Gemfile - 'Gemfile' Rails/RootPathnameMethods: Enabled: false Rails/SkipsModelValidations: Enabled: false Rails/SquishedSQLHeredocs: Enabled: false Rails/ThreeStateBooleanColumn: Exclude: - 'db/migrate/009_add_hide_mail_pref.rb' - 'db/migrate/059_add_roles_assignable.rb' - 'db/migrate/082_add_messages_locked.rb' - 'db/migrate/086_add_custom_fields_searchable.rb' - 'db/migrate/102_add_custom_fields_editable.rb' - 'db/migrate/20120115143100_add_repositories_is_default.rb' - 'db/migrate/20120127174243_add_custom_fields_multiple.rb' - 'db/migrate/20210704125704_add_twofa_required_to_groups.rb' Rails/WhereExists: Enabled: false Style/AsciiComments: Exclude: # Copyright credit has non ascii character. # We can not change nor remove it. - 'app/models/repository/git.rb' Style/BlockComments: Exclude: - 'lib/redmine/string_array_diff/diff.rb' - 'lib/redmine/string_array_diff/diffable.rb' Style/BlockDelimiters: Exclude: - 'db/migrate/007_create_journals.rb' - 'lib/redmine/string_array_diff/diff.rb' - 'lib/redmine/string_array_diff/diffable.rb' Style/FetchEnvVar: Enabled: false Style/EmptyElse: EnforcedStyle: empty Style/FormatString: Enabled: false Style/FormatStringToken: Enabled: false Style/FrozenStringLiteralComment: EnforcedStyle: always Exclude: - 'db/**/*.rb' - 'Gemfile' - 'Rakefile' - 'config.ru' - 'config/additional_environment.rb' Style/GlobalStdStream: Enabled: false Style/HashSyntax: EnforcedStyle: no_mixed_keys EnforcedShorthandSyntax: either Style/HashEachMethods: Exclude: - 'db/migrate/072_add_enumerations_position.rb' - 'db/migrate/078_add_custom_fields_position.rb' Style/IdenticalConditionalBranches: Exclude: - 'config/initializers/10-patches.rb' - 'lib/redmine/wiki_formatting/textile/redcloth3.rb' Style/InverseMethods: Enabled: false Style/NegatedIfElseCondition: Enabled: false Style/NumericPredicate: Enabled: false Style/PerlBackrefs: Enabled: false Style/RaiseArgs: Enabled: false Style/RedundantConstantBase: Exclude: - 'config/environments/production.rb' Style/RedundantParentheses: Enabled: false Style/Semicolon: Enabled: false Style/SlicingWithRange: Enabled: false Style/SoleNestedConditional: Enabled: false Style/StringLiteralsInInterpolation: Enabled: false Style/TernaryParentheses: Enabled: false Style/TrailingCommaInArrayLiteral: Enabled: false Style/TrailingCommaInHashLiteral: Enabled: false Style/YodaExpression: Enabled: false