2017-09-19 11:25:42 -04:00
|
|
|
inherit_gem:
|
|
|
|
gitlab-styles:
|
|
|
|
- rubocop-default.yml
|
2016-05-21 19:27:15 -04:00
|
|
|
|
2016-06-29 12:00:22 -04:00
|
|
|
inherit_from: .rubocop_todo.yml
|
2018-10-09 13:18:53 -04:00
|
|
|
require:
|
|
|
|
- ./rubocop/rubocop
|
|
|
|
- rubocop-rspec
|
2016-06-29 12:00:22 -04:00
|
|
|
|
2016-03-20 22:49:12 -04:00
|
|
|
AllCops:
|
2019-08-14 19:16:55 -04:00
|
|
|
TargetRubyVersion: 2.6
|
2018-12-17 17:52:17 -05:00
|
|
|
TargetRailsVersion: 5.0
|
2016-03-20 22:49:12 -04:00
|
|
|
Exclude:
|
|
|
|
- 'vendor/**/*'
|
2017-02-02 13:40:49 -05:00
|
|
|
- 'node_modules/**/*'
|
2016-06-09 08:39:16 -04:00
|
|
|
- 'db/fixtures/**/*'
|
2018-07-25 04:59:23 -04:00
|
|
|
- 'db/schema.rb'
|
|
|
|
- 'ee/db/geo/schema.rb'
|
2016-03-20 22:49:12 -04:00
|
|
|
- 'tmp/**/*'
|
|
|
|
- 'bin/**/*'
|
2016-05-19 16:32:07 -04:00
|
|
|
- 'generator_templates/**/*'
|
2017-02-28 07:13:01 -05:00
|
|
|
- 'builds/**/*'
|
2018-02-26 10:33:38 -05:00
|
|
|
- 'plugins/**/*'
|
2018-01-23 10:42:58 -05:00
|
|
|
CacheRootDirectory: tmp
|
2016-03-20 22:49:12 -04:00
|
|
|
|
2018-02-13 09:41:47 -05:00
|
|
|
# This cop checks whether some constant value isn't a
|
|
|
|
# mutable literal (e.g. array or hash).
|
|
|
|
Style/MutableConstant:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'db/migrate/**/*'
|
|
|
|
- 'db/post_migrate/**/*'
|
|
|
|
- 'ee/db/migrate/**/*'
|
|
|
|
- 'ee/db/post_migrate/**/*'
|
|
|
|
- 'ee/db/geo/migrate/**/*'
|
|
|
|
|
2018-08-10 11:17:08 -04:00
|
|
|
# TODO: Move this to gitlab-styles
|
|
|
|
Style/SafeNavigation:
|
|
|
|
Enabled: false
|
|
|
|
|
2018-09-28 05:43:07 -04:00
|
|
|
# Frozen String Literal
|
|
|
|
Style/FrozenStringLiteralComment:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'config.ru'
|
|
|
|
- 'Dangerfile'
|
|
|
|
- 'Gemfile'
|
|
|
|
- 'Rakefile'
|
|
|
|
- 'app/views/**/*'
|
|
|
|
- 'config/**/*'
|
|
|
|
- 'danger/**/*'
|
|
|
|
- 'db/**/*'
|
2019-08-27 13:46:42 -04:00
|
|
|
- 'ee/db/**/*'
|
|
|
|
- 'ee/lib/tasks/**/*'
|
2018-10-08 10:50:39 -04:00
|
|
|
- 'lib/tasks/**/*'
|
2018-09-28 05:43:07 -04:00
|
|
|
- 'qa/**/*'
|
|
|
|
- 'rubocop/**/*'
|
|
|
|
- 'scripts/**/*'
|
|
|
|
|
2018-10-09 13:18:53 -04:00
|
|
|
RSpec/FilePath:
|
|
|
|
Exclude:
|
|
|
|
- 'qa/**/*'
|
2019-07-18 15:11:09 -04:00
|
|
|
- 'spec/frontend/fixtures/*'
|
|
|
|
- 'ee/spec/frontend/fixtures/*'
|
2018-10-09 13:18:53 -04:00
|
|
|
- 'spec/requests/api/v3/*'
|
|
|
|
|
2018-03-08 07:56:54 -05:00
|
|
|
Naming/FileName:
|
|
|
|
ExpectMatchingDefinition: true
|
|
|
|
Exclude:
|
2018-07-25 04:59:23 -04:00
|
|
|
- 'db/**/*'
|
|
|
|
- 'ee/db/**/*'
|
2018-03-08 07:56:54 -05:00
|
|
|
- 'spec/**/*'
|
|
|
|
- 'features/**/*'
|
|
|
|
- 'ee/spec/**/*'
|
|
|
|
- 'qa/spec/**/*'
|
|
|
|
- 'qa/qa/specs/**/*'
|
|
|
|
- 'qa/bin/*'
|
2019-04-12 04:34:51 -04:00
|
|
|
- 'ee/bin/*'
|
2018-03-08 07:56:54 -05:00
|
|
|
- 'config/**/*'
|
2018-10-15 09:59:00 -04:00
|
|
|
- 'ee/config/**/*'
|
2018-03-08 07:56:54 -05:00
|
|
|
- 'lib/generators/**/*'
|
2018-08-08 02:38:39 -04:00
|
|
|
- 'locale/unfound_translations.rb'
|
|
|
|
- 'ee/locale/unfound_translations.rb'
|
2018-03-08 07:56:54 -05:00
|
|
|
- 'ee/lib/generators/**/*'
|
2018-10-25 04:11:19 -04:00
|
|
|
- 'qa/qa/scenario/test/integration/ldap_no_tls.rb'
|
|
|
|
- 'qa/qa/scenario/test/integration/ldap_tls.rb'
|
2018-10-24 09:17:29 -04:00
|
|
|
|
2018-03-08 07:56:54 -05:00
|
|
|
IgnoreExecutableScripts: true
|
|
|
|
AllowedAcronyms:
|
|
|
|
- EE
|
|
|
|
- JSON
|
|
|
|
- LDAP
|
2018-10-10 11:02:43 -04:00
|
|
|
- SAML
|
2019-08-27 13:46:42 -04:00
|
|
|
- SSO
|
2018-03-08 07:56:54 -05:00
|
|
|
- IO
|
|
|
|
- HMAC
|
|
|
|
- QA
|
|
|
|
- ENV
|
|
|
|
- STL
|
|
|
|
- PDF
|
|
|
|
- SVG
|
|
|
|
- CTE
|
|
|
|
- DN
|
|
|
|
- RSA
|
|
|
|
- CI
|
|
|
|
- CD
|
|
|
|
- OAuth
|
|
|
|
# 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
|
2019-01-07 05:40:54 -05:00
|
|
|
- GRPC
|
2018-03-08 07:56:54 -05:00
|
|
|
|
2019-03-29 07:23:05 -04:00
|
|
|
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-01-14 04:08:19 -05:00
|
|
|
- ee/lib/ee/gitlab/background_migration/**/*.rb
|
2019-03-29 07:23:05 -04:00
|
|
|
- lib/gitlab/database/**/*.rb
|
|
|
|
- spec/**/*.rb
|
|
|
|
- ee/db/**/*.rb
|
|
|
|
- ee/spec/**/*.rb
|
|
|
|
|
2018-09-21 08:05:37 -04:00
|
|
|
# GitLab ###################################################################
|
2017-11-22 02:50:36 -05:00
|
|
|
|
|
|
|
Gitlab/ModuleWithInstanceVariables:
|
|
|
|
Enable: true
|
|
|
|
Exclude:
|
|
|
|
# We ignore Rails helpers right now because it's hard to workaround it
|
2017-12-15 06:37:57 -05:00
|
|
|
- app/helpers/**/*_helper.rb
|
2017-12-26 03:30:36 -05:00
|
|
|
- ee/app/helpers/**/*_helper.rb
|
2017-11-22 02:50:36 -05:00
|
|
|
# We ignore Rails mailers right now because it's hard to workaround it
|
2017-12-15 06:37:57 -05:00
|
|
|
- app/mailers/emails/**/*.rb
|
2017-12-26 03:30:36 -05:00
|
|
|
- ee/**/emails/**/*.rb
|
2017-11-22 02:50:36 -05:00
|
|
|
# We ignore spec helpers because it usually doesn't matter
|
|
|
|
- spec/support/**/*.rb
|
|
|
|
- features/steps/**/*.rb
|
2018-02-13 09:41:47 -05:00
|
|
|
|
2019-10-15 23:06:12 -04:00
|
|
|
Gitlab/ConstGetInheritFalse:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'qa/bin/*'
|
|
|
|
|
2018-03-13 18:38:25 -04:00
|
|
|
Gitlab/HTTParty:
|
|
|
|
Enabled: true
|
2019-08-26 08:24:25 -04:00
|
|
|
Exclude:
|
|
|
|
- 'spec/**/*'
|
|
|
|
- 'ee/spec/**/*'
|
2018-03-13 18:38:25 -04:00
|
|
|
|
2018-02-13 09:41:47 -05:00
|
|
|
GitlabSecurity/PublicSend:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'config/**/*'
|
|
|
|
- 'db/**/*'
|
|
|
|
- 'features/**/*'
|
|
|
|
- 'lib/**/*.rake'
|
|
|
|
- 'qa/**/*'
|
|
|
|
- 'spec/**/*'
|
|
|
|
- 'ee/db/**/*'
|
|
|
|
- 'ee/lib/**/*.rake'
|
|
|
|
- 'ee/spec/**/*'
|
2018-12-13 09:46:01 -05:00
|
|
|
|
|
|
|
Cop/InjectEnterpriseEditionModule:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'spec/**/*'
|
|
|
|
- 'ee/spec/**/*'
|
2019-02-08 07:19:53 -05:00
|
|
|
|
|
|
|
Style/ReturnNil:
|
|
|
|
Enabled: true
|
2019-01-30 13:44:00 -05:00
|
|
|
|
|
|
|
# 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-04-08 09:33:36 -04:00
|
|
|
|
|
|
|
ActiveRecordAssociationReload:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'spec/**/*'
|
|
|
|
- 'ee/spec/**/*'
|
2019-08-26 08:24:25 -04:00
|
|
|
|
2019-09-25 08:06:15 -04:00
|
|
|
Naming/PredicateName:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'spec/**/*'
|
|
|
|
- 'ee/spec/**/*'
|
|
|
|
|
2019-08-26 08:24:25 -04:00
|
|
|
RSpec/FactoriesInMigrationSpecs:
|
|
|
|
Enabled: true
|
|
|
|
Include:
|
|
|
|
- 'spec/migrations/**/*.rb'
|
|
|
|
- 'ee/spec/migrations/**/*.rb'
|
|
|
|
- 'spec/lib/gitlab/background_migration/**/*.rb'
|
2020-01-14 04:08:19 -05:00
|
|
|
- 'spec/lib/ee/gitlab/background_migration/**/*.rb'
|
|
|
|
- 'ee/spec/lib/ee/gitlab/background_migration/**/*.rb'
|
2019-08-26 08:24:25 -04:00
|
|
|
|
|
|
|
Cop/IncludeActionViewContext:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'spec/**/*'
|
|
|
|
- 'ee/spec/**/*'
|
|
|
|
|
|
|
|
Cop/IncludeSidekiqWorker:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'spec/**/*'
|
|
|
|
- 'ee/spec/**/*'
|
|
|
|
|
|
|
|
Gitlab/Union:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'spec/**/*'
|
|
|
|
- 'ee/spec/**/*'
|
|
|
|
|
|
|
|
Cop/SidekiqOptionsQueue:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'spec/**/*.rb'
|
|
|
|
- 'ee/spec/**/*.rb'
|
|
|
|
|
|
|
|
Graphql/AuthorizeTypes:
|
|
|
|
Enabled: true
|
|
|
|
Exclude:
|
|
|
|
- 'spec/**/*.rb'
|
|
|
|
- 'ee/spec/**/*.rb'
|
|
|
|
|
|
|
|
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'
|
2019-08-26 04:04:54 -04:00
|
|
|
RSpec/BeSuccessMatcher:
|
|
|
|
Enabled: true
|
|
|
|
Include:
|
|
|
|
- 'spec/controllers/**/*'
|
|
|
|
- 'ee/spec/controllers/**/*'
|
|
|
|
- 'spec/support/shared_examples/controllers/**/*'
|
|
|
|
- 'ee/spec/support/shared_examples/controllers/**/*'
|
|
|
|
- 'spec/support/controllers/**/*'
|
2019-08-26 09:13:41 -04:00
|
|
|
- 'ee/spec/support/controllers/**/*'
|
2019-09-13 09:26:31 -04:00
|
|
|
|
2019-09-10 12:24:10 -04:00
|
|
|
Scalability/FileUploads:
|
|
|
|
Enabled: true
|
|
|
|
Include:
|
|
|
|
- 'lib/api/**/*.rb'
|
|
|
|
- 'ee/lib/api/**/*.rb'
|
2019-09-13 09:26:31 -04:00
|
|
|
|
|
|
|
Graphql/Descriptions:
|
|
|
|
Enabled: true
|
|
|
|
Include:
|
|
|
|
- 'app/graphql/**/*'
|
|
|
|
- 'ee/app/graphql/**/*'
|
2019-11-07 10:06:33 -05:00
|
|
|
|
|
|
|
RSpec/AnyInstanceOf:
|
|
|
|
Enabled: false
|
2019-12-20 04:24:38 -05:00
|
|
|
|
|
|
|
# Cops for upgrade to gitlab-styles 3.1.0
|
|
|
|
Rails/SafeNavigationWithBlank:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
Rails/ApplicationController:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
Rails/ApplicationMailer:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
Rails/RakeEnvironment:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
Rails/HelperInstanceVariable:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
Rails/EnumHash:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/ReceiveCounts:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/ContextMethod:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/ImplicitSubject:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/LeakyConstantDeclaration:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/EmptyLineAfterHook:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/HooksBeforeExamples:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/EmptyLineAfterExample:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/Be:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/DescribedClass:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/SharedExamples:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/EmptyLineAfterExampleGroup:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/ReceiveNever:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/MissingExampleGroupArgument:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
RSpec/UnspecifiedException:
|
|
|
|
Enabled: false
|
|
|
|
|
2020-01-15 13:08:34 -05:00
|
|
|
RSpec/HaveGitlabHttpStatus:
|
|
|
|
Enabled: false
|
|
|
|
|
2019-12-20 04:24:38 -05:00
|
|
|
Style/MultilineWhenThen:
|
|
|
|
Enabled: false
|
|
|
|
|
|
|
|
Style/FloatDivision:
|
2020-01-14 04:08:19 -05:00
|
|
|
Enabled: false
|