debian-mirror-gitlab/.rubocop.yml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

1010 lines
22 KiB
YAML
Raw Permalink Normal View History

2019-05-05 18:10:48 +05:30
inherit_gem:
gitlab-styles:
- rubocop-default.yml
require:
- ./rubocop/rubocop
- rubocop-rspec
2020-06-23 00:09:42 +05:30
inherit_from:
2021-04-17 20:07:23 +05:30
<% unless ENV['REVEAL_RUBOCOP_TODO'] == '1' %>
2022-01-26 12:08:38 +05:30
<% Dir.glob('.rubocop_todo/**/*.yml').each do |rubocop_todo_yaml| %>
- '<%= rubocop_todo_yaml %>'
<% end %>
2021-04-17 20:07:23 +05:30
- '.rubocop_todo.yml'
<% end %>
2023-04-23 21:23:45 +05:30
<% if RUBY_VERSION[/^\d+\.\d+/, 0] == '2.7' %>
- ./rubocop/rubocop-ruby27.yml
<% end %>
2022-11-25 23:54:43 +05:30
<% if RUBY_VERSION[/^\d+\.\d+/, 0] == '3.0' %>
- ./rubocop/rubocop-ruby30.yml
<% end %>
2023-05-27 22:25:52 +05:30
<% if RUBY_VERSION[/^\d+\.\d+/, 0] == '3.1' %>
- ./rubocop/rubocop-ruby31.yml
<% end %>
2020-06-23 00:09:42 +05:30
- ./rubocop/rubocop-migrations.yml
2020-10-24 23:57:45 +05:30
- ./rubocop/rubocop-usage-data.yml
2021-01-29 00:20:46 +05:30
- ./rubocop/rubocop-code_reuse.yml
2022-05-07 20:08:51 +05:30
<% Dir.glob('jh/rubocop/**/*.yml').each do |jh_rubocop_yaml| %>
- '<%= jh_rubocop_yaml %>'
<% end %>
2020-06-23 00:09:42 +05:30
2020-04-22 19:07:51 +05:30
inherit_mode:
merge:
- Include
2021-04-17 20:07:23 +05:30
- Exclude
2023-05-27 22:25:52 +05:30
- AllowedPatterns
2020-04-22 19:07:51 +05:30
2019-05-05 18:10:48 +05:30
AllCops:
2022-11-25 23:54:43 +05:30
# Target the current Ruby version. For example, "2.7" or "3.0".
TargetRubyVersion: <%= RUBY_VERSION[/^\d+\.\d+/, 0] %>
2020-06-23 00:09:42 +05:30
TargetRailsVersion: 6.0
2019-05-05 18:10:48 +05:30
Exclude:
- 'vendor/**/*'
- 'node_modules/**/*'
- 'db/fixtures/**/*'
- 'db/schema.rb'
- 'tmp/**/*'
- 'bin/**/*'
- 'generator_templates/**/*'
- 'builds/**/*'
- 'plugins/**/*'
2020-04-22 19:07:51 +05:30
- 'file_hooks/**/*'
2021-02-22 17:27:13 +05:30
- 'workhorse/**/*'
2022-11-25 23:54:43 +05:30
- 'shared/packages/**/*'
2021-09-04 01:27:46 +05:30
- 'spec/support/*.git/**/*' # e.g. spec/support/gitlab-git-test.git
2021-10-27 15:23:28 +05:30
- 'db/ci_migrate/*.rb' # since the `db/ci_migrate` is a symlinked to `db/migrate`
2023-06-20 00:43:36 +05:30
# Adding this specifically for a large revert: !118368
<% File.readlines('.rubocop_revert_ignores.txt').map(&:chomp).each do |f| %>
- '<%= f %>'
<% end %>
2021-11-11 11:23:49 +05:30
# Use absolute path to avoid orphan directories with changed workspace root.
CacheRootDirectory: <%= Dir.getwd %>/tmp
2023-03-04 22:38:38 +05:30
MaxFilesInCache: 1_000_000
2022-11-25 23:54:43 +05:30
NewCops: disable
SuggestExtensions: false
2023-03-04 22:38:38 +05:30
Rails:
Exclude:
# User defined excludes on top (department) level don't cancel default
# includes set by child cops. Directories below are not affected (tested
# manually). Watch https://github.com/rubocop/rubocop/issues/11148 to
# know when this comment can be removed.
- 'danger/**/*'
- 'tooling/danger/**/*'
- 'rubocop/**/*'
2022-11-25 23:54:43 +05:30
RSpec:
Language:
Includes:
Examples:
- run_permission_checks
- run_group_permission_checks
- it_should_email!
- it_should_not_email!
2019-05-05 18:10:48 +05:30
2022-05-07 20:08:51 +05:30
Metrics/ParameterLists:
Exclude:
2022-06-21 17:19:12 +05:30
# See https://gitlab.com/gitlab-org/gitlab/-/issues/356771
2022-05-07 20:08:51 +05:30
- 'app/components/**/*'
2020-05-24 23:13:21 +05:30
Cop/AvoidKeywordArgumentsInSidekiqWorkers:
Enabled: true
Include:
- 'app/workers/**/*'
- 'ee/app/workers/**/*'
2020-04-22 19:07:51 +05:30
Cop/StaticTranslationDefinition:
Enabled: true
Exclude:
- 'spec/**/*'
- 'ee/spec/**/*'
2021-03-08 18:12:59 +05:30
InternalAffairs/DeprecateCopHelper:
Enabled: true
Include:
- spec/rubocop/**/*.rb
2023-05-27 22:25:52 +05:30
Layout/LineLength:
AllowedPatterns: ['^RSpec\.describe\s.*\sdo']
2023-07-09 08:55:56 +05:30
Exclude:
- 'ee/spec/controllers/concerns/routable_actions_spec.rb'
- 'ee/spec/lib/gitlab/auth/group_saml/sso_enforcer_spec.rb'
2023-05-27 22:25:52 +05:30
2021-02-22 17:27:13 +05:30
Lint/LastKeywordArgument:
Safe: false
2022-07-16 23:28:13 +05:30
Lint/EmptyFile:
Exclude:
- 'db/seeds.rb'
2023-07-09 08:55:56 +05:30
- 'ee/db/embedding/seeds.rb'
2022-07-16 23:28:13 +05:30
- 'ee/db/geo/seeds.rb'
2019-05-05 18:10:48 +05:30
# This cop checks whether some constant value isn't a
# mutable literal (e.g. array or hash).
Style/MutableConstant:
Exclude:
- 'db/migrate/**/*'
- 'db/post_migrate/**/*'
- 'ee/db/migrate/**/*'
- 'ee/db/post_migrate/**/*'
- 'ee/db/geo/migrate/**/*'
# TODO: Move this to gitlab-styles
Style/SafeNavigation:
Enabled: false
2020-11-24 15:15:51 +05:30
Style/AccessModifierDeclarations:
AllowModifiersOnSymbols: true
2019-05-05 18:10:48 +05:30
# Frozen String Literal
Style/FrozenStringLiteralComment:
Enabled: true
2021-03-11 19:13:27 +05:30
EnforcedStyle: always_true
2019-05-05 18:10:48 +05:30
2022-06-21 17:19:12 +05:30
Style/SpecialGlobalVars:
2022-11-25 23:54:43 +05:30
EnforcedStyle: use_builtin_english_names
2022-06-21 17:19:12 +05:30
2019-05-05 18:10:48 +05:30
RSpec/FilePath:
Exclude:
- 'qa/**/*'
2019-10-12 21:52:04 +05:30
- 'spec/frontend/fixtures/*'
- 'ee/spec/frontend/fixtures/*'
2019-05-05 18:10:48 +05:30
- 'spec/requests/api/v3/*'
2021-09-04 01:27:46 +05:30
- 'spec/fixtures/**/*'
2023-07-09 08:55:56 +05:30
CustomTransform:
HTTPartyBasicAuth: httparty_basic_auth
2019-05-05 18:10:48 +05:30
2021-04-17 20:07:23 +05:30
# Configuration parameters: AllowSubject.
RSpec/MultipleMemoizedHelpers:
2022-04-04 11:22:00 +05:30
Max: 25
2021-04-17 20:07:23 +05:30
AllowSubject: true
2019-05-05 18:10:48 +05:30
Naming/FileName:
ExpectMatchingDefinition: true
2021-12-11 22:18:48 +05:30
CheckDefinitionPathHierarchy: false
2019-05-05 18:10:48 +05:30
Exclude:
2021-12-11 22:18:48 +05:30
- '**/*/*.builder'
- 'ee/bin/*'
- 'config.ru'
- 'config/**/*'
- 'ee/config/**/*'
- 'jh/config/**/*'
2019-05-05 18:10:48 +05:30
- 'db/**/*'
- 'ee/db/**/*'
2021-12-11 22:18:48 +05:30
- 'ee/elastic/migrate/*'
- 'lib/tasks/**/*.rake'
- 'ee/lib/tasks/**/*.rake'
- 'lib/generators/**/*'
- 'ee/lib/generators/**/*'
- 'scripts/**/*'
2019-05-05 18:10:48 +05:30
- 'spec/**/*'
2021-12-11 22:18:48 +05:30
- 'tooling/bin/**/*'
2019-05-05 18:10:48 +05:30
- 'ee/spec/**/*'
2021-12-11 22:18:48 +05:30
- 'jh/spec/**/*'
- 'qa/bin/*'
2019-05-05 18:10:48 +05:30
- 'qa/spec/**/*'
- 'qa/qa/specs/**/*'
2021-12-11 22:18:48 +05:30
- 'qa/tasks/**/*.rake'
- '**/*.ru'
2022-06-21 17:19:12 +05:30
- 'app/graphql/types/issue_connection.rb'
2023-03-04 22:38:38 +05:30
- 'app/graphql/types/group_connection.rb'
2019-05-05 18:10:48 +05:30
IgnoreExecutableScripts: true
AllowedAcronyms:
- EE
- JSON
- LDAP
- SAML
2019-12-04 20:38:33 +05:30
- SSO
2019-05-05 18:10:48 +05:30
- IO
- HMAC
- QA
- ENV
- STL
- PDF
- SVG
- CTE
- DN
- RSA
- CI
- CD
- OAuth
2021-12-11 22:18:48 +05:30
- CSP
- CSV
- SCA
- SAN
- CIDR
- SPDX
- MR
- JWT
- HLL
- GPG
- OTP
- GID
- AR
- RSpec
- ECDSA
- ED25519
- GitLab
- JavaScript
- VSCode
2022-04-04 11:22:00 +05:30
- JetBrains
2019-05-05 18:10:48 +05:30
# default ones:
- CLI
- DSL
- ACL
- API
- ASCII
- CPU
- CSS
- DNS
- EOF
- GUID
- HTML
- HTTP
- HTTPS
- ID
- IP
- JSON
- LHS
- QPS
- RAM
- RHS
- RPC
- SLA
- SMTP
- SQL
- SSH
- TCP
- TLS
- TTL
- UDP
- UI
- UID
- UUID
- URI
- URL
- UTF8
- VM
- XML
- XMPP
- XSRF
- XSS
- GRPC
2019-07-07 11:18:12 +05:30
Rails/ApplicationRecord:
Enabled: true
Exclude:
# Models in database migrations should not subclass from ApplicationRecord
# as they need to be as decoupled from application code as possible
- db/**/*.rb
- lib/gitlab/background_migration/**/*.rb
2020-03-13 15:44:24 +05:30
- ee/lib/ee/gitlab/background_migration/**/*.rb
2019-07-07 11:18:12 +05:30
- lib/gitlab/database/**/*.rb
- spec/**/*.rb
- ee/db/**/*.rb
- ee/spec/**/*.rb
2022-07-16 23:28:13 +05:30
Rails/ActiveRecordCallbacksOrder:
Include:
- app/models/**/*.rb
- ee/app/models/**/*.rb
2020-06-23 00:09:42 +05:30
Cop/DefaultScope:
Enabled: true
2020-04-22 19:07:51 +05:30
Rails/FindBy:
Enabled: true
Include:
- 'ee/app/**/*.rb'
- 'ee/lib/**/*.rb'
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
2022-07-16 23:28:13 +05:30
Rails/InverseOf:
Include:
- app/models/**/*.rb
- ee/app/models/**/*.rb
2020-06-23 00:09:42 +05:30
# This is currently exiting with a rubocop exception error and should be
# resolved hopefully a future update
# An error occurred while Rails/UniqueValidationWithoutIndex cop was inspecting
# app/models/abuse_report.rb:15:2.
# To see the complete backtrace run rubocop -d.
Rails/UniqueValidationWithoutIndex:
Enabled: false
2022-07-16 23:28:13 +05:30
Rails/HelperInstanceVariable:
Include:
- app/helpers/**/*.rb
- ee/app/helpers/**/*.rb
2022-07-23 23:45:48 +05:30
Rails/MailerName:
Exclude:
# See for the context on why it's excluded https://gitlab.com/gitlab-org/gitlab/-/issues/239356#note_956419227
- 'app/mailers/notify.rb'
2023-03-04 22:38:38 +05:30
Rails/Pluck:
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94047#note_1179689274
AutoCorrect: false
2022-08-27 11:52:29 +05:30
Rails/RakeEnvironment:
# Context on why it's disabled: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/93419#note_1048223982
Enabled: false
2023-01-13 00:05:48 +05:30
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94064#note_1157289970
Rails/SquishedSQLHeredocs:
Enabled: false
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/96675#note_1094403693
Rails/WhereExists:
Enabled: false
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94061#note_1160343775
Rails/SkipsModelValidations:
Enabled: false
# See https://gitlab.com/gitlab-org/gitlab/-/issues/378105#note_1138487716
Rails/HasManyOrHasOneDependent:
Enabled: false
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94019#note_1139714728
Rails/CreateTableWithTimestamps:
Enabled: false
2019-05-05 18:10:48 +05:30
# GitLab ###################################################################
Gitlab/ModuleWithInstanceVariables:
Enable: true
Exclude:
# We ignore Rails helpers right now because it's hard to workaround it
- app/helpers/**/*_helper.rb
- ee/app/helpers/**/*_helper.rb
# We ignore Rails mailers right now because it's hard to workaround it
- app/mailers/emails/**/*.rb
- ee/**/emails/**/*.rb
# We ignore spec helpers because it usually doesn't matter
- spec/support/**/*.rb
- features/steps/**/*.rb
2019-12-21 20:55:43 +05:30
Gitlab/ConstGetInheritFalse:
Enabled: true
Exclude:
- 'qa/bin/*'
2020-05-24 23:13:21 +05:30
Gitlab/ChangeTimezone:
Enabled: true
Exclude:
- config/initializers/time_zone.rb
2019-05-05 18:10:48 +05:30
Gitlab/HTTParty:
Enabled: true
2019-12-04 20:38:33 +05:30
Exclude:
- 'spec/**/*'
- 'ee/spec/**/*'
2019-05-05 18:10:48 +05:30
2020-05-24 23:13:21 +05:30
Gitlab/Json:
Enabled: true
Exclude:
- 'qa/**/*'
- 'scripts/**/*'
2021-04-17 20:07:23 +05:30
- 'tooling/rspec_flaky/**/*'
2020-05-24 23:13:21 +05:30
- 'lib/quality/**/*'
2021-03-11 19:13:27 +05:30
- 'tooling/danger/**/*'
2020-05-24 23:13:21 +05:30
2020-11-24 15:15:51 +05:30
Gitlab/AvoidUploadedFileFromParams:
Enabled: true
Exclude:
- 'lib/gitlab/middleware/multipart.rb'
- 'spec/**/*'
- 'ee/spec/**/*'
2022-04-04 11:22:00 +05:30
Gitlab/EventStoreSubscriber:
Enabled: true
Exclude:
- 'spec/**/*'
- 'ee/spec/**/*'
2023-04-23 21:23:45 +05:30
Gitlab/DocUrl:
Enabled: true
Exclude:
- danger/**/*
- ee/spec/**/*
- haml_lint/**/*
- qa/**/*
- rubocop/**/*
- scripts/**/*
- spec/**/*
- tooling/**/*
2019-05-05 18:10:48 +05:30
GitlabSecurity/PublicSend:
Enabled: true
Exclude:
- 'config/**/*'
- 'db/**/*'
- 'features/**/*'
- 'lib/**/*.rake'
- 'qa/**/*'
- 'spec/**/*'
- 'ee/db/**/*'
- 'ee/lib/**/*.rake'
- 'ee/spec/**/*'
2021-09-30 23:02:18 +05:30
Database/MultipleDatabases:
Enabled: true
Exclude:
- 'ee/db/**/*.rb'
- 'spec/migrations/**/*.rb'
2022-07-16 23:28:13 +05:30
- 'lib/tasks/gitlab/db.rake'
- 'ee/lib/ee/gitlab/background_migration/**/*.rb'
2021-09-30 23:02:18 +05:30
- 'spec/lib/gitlab/background_migration/**/*.rb'
- 'spec/lib/gitlab/database/**/*.rb'
2023-03-17 16:20:25 +05:30
- 'spec/tasks/gitlab/db_rake_spec.rb'
2021-09-30 23:02:18 +05:30
2023-03-04 22:38:38 +05:30
Migration/BatchMigrationsPostOnly:
Enabled: true
Include:
- 'db/migrate/*.rb'
- 'db/post_migrate/*.rb'
2023-03-17 16:20:25 +05:30
BackgroundMigration/FeatureCategory:
Enabled: true
Include:
- 'lib/gitlab/background_migration/*.rb'
2023-05-27 22:25:52 +05:30
BackgroundMigration/MissingDictionaryFile:
Enabled: true
EnforcedSince: 20230307160251
Include:
- 'db/post_migrate/*.rb'
2023-01-13 00:05:48 +05:30
# See https://gitlab.com/gitlab-org/gitlab/-/issues/373194
Gitlab/RSpec/AvoidSetup:
Enabled: true
Include:
- 'ee/spec/features/registrations/saas/**/*'
2023-06-20 00:43:36 +05:30
- 'ee/spec/features/trials/saas/**/*'
2023-01-13 00:05:48 +05:30
RSpec/DuplicateSpecLocation:
2020-06-23 00:09:42 +05:30
Enabled: true
2020-04-22 19:07:51 +05:30
2021-02-22 17:27:13 +05:30
Gitlab/PolicyRuleBoolean:
Enabled: true
Include:
- 'app/policies/**/*'
- 'ee/app/policies/**/*'
2019-05-05 18:10:48 +05:30
Cop/InjectEnterpriseEditionModule:
Enabled: true
Exclude:
- 'spec/**/*'
- 'ee/spec/**/*'
2019-07-07 11:18:12 +05:30
Style/ReturnNil:
Enabled: true
# It isn't always safe to replace `=~` with `.match?`, especially when there are
# nil values on the left hand side
Performance/RegexpMatch:
Enabled: false
2019-07-31 22:56:46 +05:30
2020-06-23 00:09:42 +05:30
Cop/ActiveRecordAssociationReload:
2019-07-31 22:56:46 +05:30
Enabled: true
Exclude:
- 'spec/**/*'
- 'ee/spec/**/*'
2019-12-04 20:38:33 +05:30
2021-06-08 01:23:25 +05:30
Cop/ActiveModelErrorsDirectManipulation:
Enabled: true
2020-06-23 00:09:42 +05:30
Gitlab/AvoidFeatureGet:
Enabled: true
2021-03-08 18:12:59 +05:30
RSpec/WebMockEnable:
Enabled: true
Include:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
Exclude:
- 'spec/support/webmock.rb'
2019-12-21 20:55:43 +05:30
Naming/PredicateName:
Enabled: true
Exclude:
- 'spec/**/*'
- 'ee/spec/**/*'
2022-08-27 11:52:29 +05:30
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/93828#note_1050812797
Naming/RescuedExceptionsVariableName:
Enabled: false
2023-03-04 22:38:38 +05:30
RSpec/AvoidTestProf:
Include:
- 'spec/migrations/**/*.rb'
- 'ee/spec/migrations/**/*.rb'
- 'spec/lib/gitlab/background_migration/**/*.rb'
- 'ee/spec/lib/gitlab/background_migration/**/*.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/**/*.rb'
2023-07-09 08:55:56 +05:30
RSpec/AvoidConditionalStatements:
Enabled: true
Include:
- 'spec/features/**/*.rb'
- 'ee/spec/features/**/*.rb'
2019-12-04 20:38:33 +05:30
RSpec/FactoriesInMigrationSpecs:
Enabled: true
Include:
- 'spec/migrations/**/*.rb'
- 'ee/spec/migrations/**/*.rb'
- 'spec/lib/gitlab/background_migration/**/*.rb'
2020-03-13 15:44:24 +05:30
- 'spec/lib/ee/gitlab/background_migration/**/*.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/**/*.rb'
2019-12-04 20:38:33 +05:30
2023-04-23 21:23:45 +05:30
RSpec/MissingFeatureCategory:
Enabled: true
Exclude:
- 'qa/**/*.rb'
2022-11-25 23:54:43 +05:30
RSpec/FactoryBot/AvoidCreate:
Enabled: true
Include:
2023-01-13 00:05:48 +05:30
- 'spec/presenters/**/*.rb'
2022-11-25 23:54:43 +05:30
- 'spec/serializers/**/*.rb'
2023-03-04 22:38:38 +05:30
- 'spec/helpers/**/*.rb'
- 'spec/views/**/*.rb'
- 'spec/components/**/*.rb'
- 'spec/mailers/**/*.rb'
2023-04-23 21:23:45 +05:30
- 'spec/routes/directs/*.rb'
2023-01-13 00:05:48 +05:30
- 'ee/spec/presenters/**/*.rb'
2022-11-25 23:54:43 +05:30
- 'ee/spec/serializers/**/*.rb'
2023-03-04 22:38:38 +05:30
- 'ee/spec/helpers/**/*.rb'
- 'ee/spec/views/**/*.rb'
- 'ee/spec/components/**/*.rb'
- 'ee/spec/mailers/**/*.rb'
2023-04-23 21:23:45 +05:30
- 'ee/spec/routes/directs/*.rb'
2022-11-25 23:54:43 +05:30
2023-01-13 00:05:48 +05:30
RSpec/FactoryBot/StrategyInCallback:
Enabled: true
Include:
- 'spec/factories/**/*.rb'
- 'ee/spec/factories/**/*.rb'
2019-12-04 20:38:33 +05:30
Cop/IncludeSidekiqWorker:
Enabled: true
Exclude:
- 'spec/**/*'
- 'ee/spec/**/*'
Gitlab/Union:
Enabled: true
Exclude:
- 'spec/**/*'
- 'ee/spec/**/*'
2021-01-03 14:25:43 +05:30
API/Base:
2020-07-28 23:09:34 +05:30
Enabled: true
Include:
- 'lib/**/api/**/*.rb'
- 'ee/**/api/**/*.rb'
API/GrapeArrayMissingCoerce:
Enabled: true
Include:
- 'lib/**/api/**/*.rb'
- 'ee/**/api/**/*.rb'
2019-12-04 20:38:33 +05:30
Cop/SidekiqOptionsQueue:
Enabled: true
Exclude:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
2021-01-29 00:20:46 +05:30
Graphql/ResolverType:
Enabled: true
2021-02-22 17:27:13 +05:30
Exclude:
- 'app/graphql/resolvers/base_resolver.rb'
2021-01-29 00:20:46 +05:30
Include:
- 'app/graphql/resolvers/**/*'
- 'ee/app/graphql/resolvers/**/*'
2019-12-04 20:38:33 +05:30
Graphql/AuthorizeTypes:
Enabled: true
2020-07-28 23:09:34 +05:30
Include:
- 'app/graphql/types/**/*'
- 'ee/app/graphql/types/**/*'
2019-12-04 20:38:33 +05:30
Exclude:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
2021-01-03 14:25:43 +05:30
Graphql/GIDExpectedType:
Enabled: true
Include:
- 'app/graphql/**/*'
- 'ee/app/graphql/**/*'
Exclude:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
Graphql/IDType:
Enabled: true
Include:
- 'app/graphql/**/*'
- 'ee/app/graphql/**/*'
2020-10-24 23:57:45 +05:30
Graphql/JSONType:
Enabled: true
Include:
- 'app/graphql/**/*'
- 'ee/app/graphql/**/*'
Exclude:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
2021-10-27 15:23:28 +05:30
Graphql/OldTypes:
Enabled: true
Include:
- 'app/graphql/**/*'
- 'ee/app/graphql/**/*'
- 'spec/graphql/**/*'
- 'spec/requests/api/graphql/**/*'
- 'ee/spec/graphql/**/*'
- 'ee/spec/requests/api/graphql/**/*'
2019-12-04 20:38:33 +05:30
RSpec/EnvAssignment:
Enable: true
Include:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
Exclude:
- 'spec/**/fast_spec_helper.rb'
- 'ee/spec/**/fast_spec_helper.rb'
- 'spec/**/spec_helper.rb'
- 'ee/spec/**/spec_helper.rb'
2023-04-23 21:23:45 +05:30
RSpec/EnvMocking:
Enable: true
Include:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
Exclude:
- 'spec/**/fast_spec_helper.rb'
- 'ee/spec/**/fast_spec_helper.rb'
- 'spec/**/spec_helper.rb'
- 'ee/spec/**/spec_helper.rb'
- 'spec/support/helpers/stub_env.rb'
2019-12-04 20:38:33 +05:30
RSpec/BeSuccessMatcher:
Enabled: true
Include:
- 'spec/controllers/**/*'
- 'ee/spec/controllers/**/*'
- 'spec/support/shared_examples/controllers/**/*'
- 'ee/spec/support/shared_examples/controllers/**/*'
- 'spec/support/controllers/**/*'
- 'ee/spec/support/controllers/**/*'
Scalability/FileUploads:
Enabled: true
Include:
- 'lib/api/**/*.rb'
- 'ee/lib/api/**/*.rb'
Graphql/Descriptions:
Enabled: true
2021-02-22 17:27:13 +05:30
AutoCorrect: true
2019-12-04 20:38:33 +05:30
Include:
- 'app/graphql/**/*'
- 'ee/app/graphql/**/*'
2019-12-26 22:10:19 +05:30
2023-01-13 00:05:48 +05:30
Graphql/EnumNames:
Enabled: true
Include:
- 'app/graphql/**/*'
- 'ee/app/graphql/**/*'
Graphql/EnumValues:
Enabled: true
Include:
- 'app/graphql/**/*'
- 'ee/app/graphql/**/*'
2020-03-13 15:44:24 +05:30
# Cops for upgrade to gitlab-styles 3.1.0
RSpec/ImplicitSubject:
Enabled: false
2022-10-11 01:57:18 +05:30
# Already covered by `RSpec::Configuration#on_potential_false_positives = :raise`.
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86429
2020-03-13 15:44:24 +05:30
RSpec/UnspecifiedException:
Enabled: false
RSpec/HaveGitlabHttpStatus:
Enabled: true
Exclude:
- 'spec/support/matchers/have_gitlab_http_status.rb'
Include:
2020-04-08 14:13:33 +05:30
- 'spec/**/*'
- 'ee/spec/**/*'
2020-03-13 15:44:24 +05:30
2022-08-27 11:52:29 +05:30
RSpec/ContextWording:
Prefixes:
- 'when'
- 'with'
- 'without'
- 'for'
- 'and'
- 'on'
- 'in'
- 'as'
- 'if'
2020-03-13 15:44:24 +05:30
Style/MultilineWhenThen:
Enabled: false
2020-10-24 23:57:45 +05:30
# We use EnforcedStyle of comparison here due to it being better
# performing code as seen in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/36221#note_375659681
Style/NumericPredicate:
EnforcedStyle: comparison
2020-04-08 14:13:33 +05:30
Cop/BanCatchThrow:
Enabled: true
2020-04-22 19:07:51 +05:30
Performance/ReadlinesEach:
Enabled: true
Performance/ChainArrayAllocation:
Enabled: true
Include:
- 'lib/gitlab/import_export/**/*'
- 'ee/lib/gitlab/import_export/**/*'
- 'ee/lib/ee/gitlab/import_export/**/*'
2020-05-24 23:13:21 +05:30
Rails/TimeZone:
Enabled: true
EnforcedStyle: 'flexible'
Include:
- 'app/controllers/**/*'
- 'app/services/**/*'
2020-10-24 23:57:45 +05:30
- 'lib/**/*'
2020-05-24 23:13:21 +05:30
- 'spec/controllers/**/*'
- 'spec/services/**/*'
2020-10-24 23:57:45 +05:30
- 'spec/lib/**/*'
2020-05-24 23:13:21 +05:30
- 'ee/app/controllers/**/*'
- 'ee/app/services/**/*'
- 'ee/spec/controllers/**/*'
- 'ee/spec/services/**/*'
2020-06-23 00:09:42 +05:30
- 'app/models/**/*'
- 'spec/models/**/*'
- 'ee/app/models/**/*'
- 'ee/spec/models/**/*'
2020-07-28 23:09:34 +05:30
- 'app/workers/**/*'
- 'spec/workers/**/*'
- 'ee/app/workers/**/*'
- 'ee/spec/workers/**/*'
2020-10-24 23:57:45 +05:30
- 'ee/lib/**/*'
- 'ee/spec/lib/**/*'
2022-05-07 20:08:51 +05:30
- 'spec/features/**/*'
- 'ee/spec/features/**/*'
2020-05-24 23:13:21 +05:30
2020-06-23 00:09:42 +05:30
Rails/SaveBang:
Enabled: true
2020-07-28 23:09:34 +05:30
AllowImplicitReturn: false
AllowedReceivers: ['ActionDispatch::TestRequest']
2020-06-23 00:09:42 +05:30
Include:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
- 'qa/spec/**/*.rb'
- 'qa/qa/specs/**/*.rb'
2021-06-08 01:23:25 +05:30
Exclude:
- spec/models/wiki_page/**/*
- spec/models/wiki_page_spec.rb
2020-10-24 23:57:45 +05:30
Cop/PutProjectRoutesUnderScope:
Include:
- 'config/routes/project.rb'
- 'ee/config/routes/project.rb'
Cop/PutGroupRoutesUnderScope:
Include:
- 'config/routes/group.rb'
- 'ee/config/routes/group.rb'
2020-11-24 15:15:51 +05:30
Migration/ComplexIndexesRequireName:
Exclude:
- !ruby/regexp /\Adb\/(post_)?migrate\/201.*\.rb\z/
- !ruby/regexp /\Adb\/(post_)?migrate\/20200[1-7].*\.rb\z/
Migration/ReferToIndexByName:
Exclude:
- !ruby/regexp /\Adb\/(post_)?migrate\/201.*\.rb\z/
- !ruby/regexp /\Adb\/(post_)?migrate\/20200[1-7].*\.rb\z/
- !ruby/regexp /\Aee\/db\/geo\/(post_)?migrate\/201.*\.rb\z/
Migration/CreateTableWithForeignKeys:
# Disable this cop for all the existing migrations
Exclude:
- !ruby/regexp /\Adb\/(?:post_)?migrate\/(?:201[0-9]\d+|20200[0-8][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])_.+\.rb\z/
2021-09-30 23:02:18 +05:30
Migration/PreventIndexCreation:
Exclude:
- !ruby/regexp /\Adb\/(post_)?migrate\/201.*\.rb\z/
- !ruby/regexp /\Adb\/(post_)?migrate\/2020.*\.rb\z/
- !ruby/regexp /\Adb\/(post_)?migrate\/20210[1-6].*\.rb\z/
2023-01-13 00:05:48 +05:30
Migration/SchemaAdditionMethodsNoPost:
Enabled: true
Include:
- db/post_migrate/*.rb
EnforcedSince: 20221024034228
2020-11-24 15:15:51 +05:30
Gitlab/RailsLogger:
Exclude:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
2021-01-03 14:25:43 +05:30
2022-11-25 23:54:43 +05:30
RSpec/FactoryBot/InlineAssociation:
2021-01-03 14:25:43 +05:30
Include:
- 'spec/factories/**/*.rb'
- 'ee/spec/factories/**/*.rb'
2021-04-17 20:07:23 +05:30
# WIP: https://gitlab.com/gitlab-org/gitlab/-/issues/321982
Gitlab/NamespacedClass:
Exclude:
- 'config/**/*.rb'
- 'db/**/*.rb'
- 'ee/bin/**/*'
- 'ee/db/**/*.rb'
- 'ee/elastic/**/*.rb'
- 'scripts/**/*'
- 'spec/migrations/**/*.rb'
2022-04-04 11:22:00 +05:30
- 'app/experiments/**/*_experiment.rb'
2022-07-16 23:28:13 +05:30
- 'ee/app/experiments/**/*_experiment.rb'
2021-04-17 20:07:23 +05:30
Lint/HashCompareByIdentity:
Enabled: true
Lint/RedundantSafeNavigation:
Enabled: true
Style/ClassEqualityComparison:
Enabled: true
2021-04-29 21:17:54 +05:30
# WIP See https://gitlab.com/gitlab-org/gitlab/-/issues/207950
Cop/UserAdmin:
Enabled: true
Exclude:
- 'app/controllers/admin/sessions_controller.rb'
- 'app/controllers/concerns/enforces_admin_authentication.rb'
- 'app/policies/base_policy.rb'
- 'lib/gitlab/auth/current_user_mode.rb'
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
# See https://gitlab.com/gitlab-org/gitlab/-/issues/327495
Style/RegexpLiteral:
Enabled: false
Style/RegexpLiteralMixedPreserve:
Enabled: true
SupportedStyles:
- slashes
- percent_r
- mixed
- mixed_preserve
EnforcedStyle: mixed_preserve
2021-09-04 01:27:46 +05:30
2023-01-13 00:05:48 +05:30
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94317#note_1139610896
Style/Lambda:
EnforcedStyle: literal
2021-09-04 01:27:46 +05:30
RSpec/TopLevelDescribePath:
Exclude:
- 'spec/fixtures/**/*.rb'
- 'ee/spec/fixtures/**/*.rb'
2021-10-27 15:23:28 +05:30
QA/SelectorUsage:
Enabled: true
Include:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
Exclude:
- 'spec/rubocop/**/*_spec.rb'
2021-11-11 11:23:49 +05:30
Performance/ActiveRecordSubtransactions:
Exclude:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
Performance/ActiveRecordSubtransactionMethods:
Exclude:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
2022-07-16 23:28:13 +05:30
Migration/BackgroundMigrationBaseClass:
Enabled: false
Style/ClassAndModuleChildren:
Enabled: true
2022-08-13 15:12:31 +05:30
Fips/OpenSSL:
Enabled: false
2022-08-27 11:52:29 +05:30
Gemspec/AvoidExecutingGit:
Enabled: false
2022-11-25 23:54:43 +05:30
Lint/BinaryOperatorWithIdenticalOperands:
Exclude:
- '{,ee/,qa/}spec/**/*_{spec,shared_examples,shared_context}.rb'
Cop/SidekiqRedisCall:
Enabled: true
Exclude:
- '{,ee/,jh/}spec/**/*'
- 'lib/gitlab/database/migration_helpers.rb'
- 'lib/gitlab/sidekiq_migrate_jobs.rb'
- 'lib/gitlab/sidekiq_versioning.rb'
Cop/RedisQueueUsage:
Enabled: true
Exclude:
- '{,ee/,jh/}spec/**/*'
- 'config/initializers/sidekiq.rb'
- 'lib/gitlab/instrumentation/redis.rb'
- 'lib/gitlab/redis.rb'
- 'lib/system_check/app/redis_version_check.rb'
- 'lib/gitlab/mail_room.rb'
Cop/SidekiqApiUsage:
Enabled: true
Exclude:
- '{,ee/,jh/}spec/**/*'
- 'db/post_migrate/**/*'
- 'lib/gitlab/sidekiq_middleware/**/*'
- 'lib/gitlab/background_migration/**/*'
- 'lib/gitlab/hashed_storage/migrator.rb'
- 'lib/api/sidekiq_metrics.rb'
- 'lib/gitlab/sidekiq_config.rb'
- 'lib/gitlab/sidekiq_queue.rb'
- 'config/initializers/sidekiq.rb'
- 'config/initializers/forbid_sidekiq_in_transactions.rb'
2023-01-13 00:05:48 +05:30
Rake/Require:
Include:
- '{,ee/,jh/}lib/**/*.rake'
- 'qa/tasks/**/*.rake'
2023-03-04 22:38:38 +05:30
Cop/FeatureFlagUsage:
Include:
- 'lib/gitlab/redis/**/*.rb'
- 'lib/gitlab/patch/**/*.rb'
- 'lib/gitlab/instrumentation/**/*.rb'
2023-03-17 16:20:25 +05:30
2023-04-23 21:23:45 +05:30
Style/ArgumentsForwarding:
Enabled: true
AllowOnlyRestArgument: false
2023-06-20 00:43:36 +05:30
Search/NamespacedClass:
Enabled: true
Exclude:
- 'config/**/*.rb'
- 'db/**/*.rb'
- 'ee/db/**/*.rb'
- 'ee/bin/**/*'
- 'ee/elastic/**/*.rb' # Advanced Search migrations issue: <>
- 'scripts/**/*'
- 'spec/migrations/**/*.rb'
- 'app/experiments/**/*_experiment.rb'
- 'ee/app/experiments/**/*_experiment.rb'
- 'lib/gitlab/instrumentation/**/*.rb'
SidekiqLoadBalancing/WorkerDataConsistency:
Enabled: true
Include:
- 'app/workers/**/*'
- 'ee/app/workers/**/*'
2023-07-09 08:55:56 +05:30
# This cop is disabled for Ruby 3.0+ anyway.
Lint/NonDeterministicRequireOrder:
Enabled: false