gitlab-styles 6.2.0 → 6.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/gitlab-styles.gemspec +1 -0
- data/lib/gitlab/styles/rubocop/cop/rails/include_url_helper.rb +31 -0
- data/lib/gitlab/styles/rubocop/cop/style/open_struct_use.rb +43 -0
- data/lib/gitlab/styles/version.rb +1 -1
- data/rubocop-code_reuse.yml +4 -0
- data/rubocop-default.yml +2 -0
- data/rubocop-graphql.yml +30 -0
- data/rubocop-migrations.yml +3 -0
- data/rubocop-performance.yml +5 -4
- data/rubocop-rails.yml +8 -0
- data/rubocop-rspec.yml +3 -0
- data/rubocop-security.yml +3 -0
- data/rubocop-style.yml +7 -0
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f15e657637a0d30fed824f3d8312b970b9ee9bebc5a0feb603b83fa884b1705
|
4
|
+
data.tar.gz: fef3baec21ab04501f316d754a02aab77fb4dc816a048f87070d6d1b4a28f74c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9954e550cf2ead877c73939a6f20893be5a584eb2c4f0850ea2cb5c8f4e976f3a20d3f910c0a39072c87e666cba51a8f5d283c56e33e2b2db76b1376f18cab7f
|
7
|
+
data.tar.gz: a54833e11f28072707ca11e21428820d888a8c95f89a5577e2633d324311400eca5d277b93311a405239397ca9ad3abac2a9982fcd5ace63f5a4491af970d513
|
data/gitlab-styles.gemspec
CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
|
25
25
|
spec.add_dependency 'rubocop', '~> 0.91', '>= 0.91.1'
|
26
26
|
spec.add_dependency 'rubocop-gitlab-security', '~> 0.1.1'
|
27
|
+
spec.add_dependency 'rubocop-graphql', '~> 0.10'
|
27
28
|
spec.add_dependency 'rubocop-performance', '~> 1.9.2'
|
28
29
|
spec.add_dependency 'rubocop-rails', '~> 2.9'
|
29
30
|
spec.add_dependency 'rubocop-rspec', '~> 1.44'
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../model_helpers'
|
4
|
+
|
5
|
+
module Gitlab
|
6
|
+
module Styles
|
7
|
+
module Rubocop
|
8
|
+
module Cop
|
9
|
+
module Rails
|
10
|
+
class IncludeUrlHelper < RuboCop::Cop::Cop
|
11
|
+
MSG = <<~MSG
|
12
|
+
Avoid including `ActionView::Helpers::UrlHelper`.
|
13
|
+
It adds/overrides ~40 methods while usually only one is needed.
|
14
|
+
Instead, use the `Gitlab::Routing.url_helpers`/`Application.routes.url_helpers`(outside of gitlab)
|
15
|
+
and `ActionController::Base.helpers.link_to`.
|
16
|
+
See https://gitlab.com/gitlab-org/gitlab/-/issues/340567.
|
17
|
+
MSG
|
18
|
+
|
19
|
+
def_node_matcher :include_url_helpers_node?, <<~PATTERN
|
20
|
+
(send nil? :include (const (const (const {nil? cbase} :ActionView) :Helpers) :UrlHelper))
|
21
|
+
PATTERN
|
22
|
+
|
23
|
+
def on_send(node)
|
24
|
+
add_offense(node) if include_url_helpers_node?(node)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Gitlab
|
4
|
+
module Styles
|
5
|
+
module Rubocop
|
6
|
+
module Cop
|
7
|
+
module Style
|
8
|
+
# This cop flags uses of OpenStruct, as it is now officially discouraged
|
9
|
+
# to be used for performance, version compatibility, and potential security issues.
|
10
|
+
#
|
11
|
+
# See also:
|
12
|
+
# - https://rubyreferences.github.io/rubychanges/3.0.html#standard-library
|
13
|
+
# - https://docs.ruby-lang.org/en/3.0.0/OpenStruct.html#class-OpenStruct-label-Caveats
|
14
|
+
# - https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67855
|
15
|
+
class OpenStructUse < RuboCop::Cop::Cop
|
16
|
+
MSG = 'Avoid using `OpenStruct`. It is officially discouraged. ' \
|
17
|
+
'Replace it with `Struct`, `Hash`, or RSpec doubles. ' \
|
18
|
+
'See https://docs.ruby-lang.org/en/3.0.0/OpenStruct.html#class-OpenStruct-label-Caveats'
|
19
|
+
|
20
|
+
def_node_matcher :uses_open_struct?, <<-PATTERN
|
21
|
+
(const {nil? (cbase)} :OpenStruct)
|
22
|
+
PATTERN
|
23
|
+
|
24
|
+
def on_const(node)
|
25
|
+
return unless uses_open_struct?(node)
|
26
|
+
return if custom_class_or_module_definition?(node)
|
27
|
+
|
28
|
+
add_offense(node)
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def custom_class_or_module_definition?(node)
|
34
|
+
parent = node.parent
|
35
|
+
|
36
|
+
(parent.class_type? || parent.module_type?) && node.left_siblings.empty?
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/rubocop-code_reuse.yml
CHANGED
data/rubocop-default.yml
CHANGED
@@ -4,12 +4,14 @@ require:
|
|
4
4
|
- rubocop-performance
|
5
5
|
- rubocop-rspec
|
6
6
|
- rubocop-rails
|
7
|
+
- rubocop-graphql
|
7
8
|
- ./lib/gitlab/styles/rubocop
|
8
9
|
|
9
10
|
inherit_from:
|
10
11
|
- rubocop-all.yml
|
11
12
|
- rubocop-bundler.yml
|
12
13
|
- rubocop-gemspec.yml
|
14
|
+
- rubocop-graphql.yml
|
13
15
|
- rubocop-layout.yml
|
14
16
|
- rubocop-lint.yml
|
15
17
|
- rubocop-metrics.yml
|
data/rubocop-graphql.yml
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
---
|
2
|
+
require:
|
3
|
+
- rubocop-graphql
|
4
|
+
|
5
|
+
# Ensures all arguments have a description
|
6
|
+
# Disabled because our bespoke Graphql/Descriptions cop covers this.
|
7
|
+
GraphQL/ArgumentDescription:
|
8
|
+
Enabled: false
|
9
|
+
|
10
|
+
# Ensures all fields have a description
|
11
|
+
# Disabled because our bespoke Graphql/Descriptions cop covers this.
|
12
|
+
GraphQL/FieldDescription:
|
13
|
+
Enabled: false
|
14
|
+
|
15
|
+
# Suggests using input type instead of many arguments
|
16
|
+
GraphQL/ExtractInputType:
|
17
|
+
Enabled: false
|
18
|
+
|
19
|
+
# Suggests extracting fields with common prefixes to the separate type
|
20
|
+
GraphQL/ExtractType:
|
21
|
+
Enabled: false
|
22
|
+
|
23
|
+
# Checks that types are defined with class-based API
|
24
|
+
GraphQL/LegacyDsl:
|
25
|
+
Enabled: false
|
26
|
+
|
27
|
+
# Ensures all types have a description
|
28
|
+
# Disabled because our bespoke Graphql/Descriptions cop covers this.
|
29
|
+
GraphQL/ObjectDescription:
|
30
|
+
Enabled: false
|
data/rubocop-migrations.yml
CHANGED
data/rubocop-performance.yml
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
---
|
2
|
+
require:
|
3
|
+
- rubocop-performance
|
4
|
+
|
2
5
|
# Used to identify usages of ancestors.include? and change them to use ⇐ instead.
|
3
6
|
# https://docs.rubocop.org/rubocop-performance/1.8/cops_performance.html#performanceancestorsinclude
|
4
7
|
Performance/AncestorsInclude:
|
@@ -35,11 +38,9 @@ Performance/DoubleStartEndWith:
|
|
35
38
|
Performance/MethodObjectAsBlock: # (new in 1.9)
|
36
39
|
Enabled: true
|
37
40
|
|
38
|
-
#
|
41
|
+
# Superseded by Style/OpenStructUse
|
39
42
|
Performance/OpenStruct:
|
40
|
-
Enabled:
|
41
|
-
Exclude:
|
42
|
-
- 'spec/**/*'
|
43
|
+
Enabled: false
|
43
44
|
|
44
45
|
# Use `Range#cover?` instead of `Range#include?`.
|
45
46
|
Performance/RangeInclude:
|
data/rubocop-rails.yml
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
---
|
2
|
+
require:
|
3
|
+
- rubocop-rails
|
4
|
+
- ./lib/gitlab/styles/rubocop
|
5
|
+
|
2
6
|
# Enables Rails cops.
|
3
7
|
Rails:
|
4
8
|
Enabled: true
|
@@ -183,3 +187,7 @@ Rails/WhereExists:
|
|
183
187
|
# https://docs.rubocop.org/rubocop-rails/2.8/cops_rails.html#railswherenot
|
184
188
|
Rails/WhereNot:
|
185
189
|
Enabled: true
|
190
|
+
|
191
|
+
# Bans the use of `include ActionView::Helpers::UrlHelper`.
|
192
|
+
Rails/IncludeUrlHelper:
|
193
|
+
Enabled: true
|
data/rubocop-rspec.yml
CHANGED
data/rubocop-security.yml
CHANGED
data/rubocop-style.yml
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
---
|
2
|
+
require:
|
3
|
+
- ./lib/gitlab/styles/rubocop
|
4
|
+
|
2
5
|
# Checks for grouping of accessors in class and module bodies.
|
3
6
|
# https://docs.rubocop.org/rubocop/0.89/cops_style.html#styleaccessorgrouping
|
4
7
|
Style/AccessorGrouping:
|
@@ -294,6 +297,10 @@ Style/NumericLiterals:
|
|
294
297
|
Style/OneLineConditional:
|
295
298
|
Enabled: true
|
296
299
|
|
300
|
+
# Do not use OpenStruct.
|
301
|
+
Style/OpenStructUse:
|
302
|
+
Enabled: true
|
303
|
+
|
297
304
|
# Don't use parentheses around the condition of an if/unless/while.
|
298
305
|
Style/ParenthesesAroundCondition:
|
299
306
|
Enabled: true
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab-styles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitLab
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -44,6 +44,20 @@ dependencies:
|
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 0.1.1
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rubocop-graphql
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.10'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0.10'
|
47
61
|
- !ruby/object:Gem::Dependency
|
48
62
|
name: rubocop-performance
|
49
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,6 +178,7 @@ files:
|
|
164
178
|
- lib/gitlab/styles/rubocop/cop/line_break_around_conditional_block.rb
|
165
179
|
- lib/gitlab/styles/rubocop/cop/migration/update_large_table.rb
|
166
180
|
- lib/gitlab/styles/rubocop/cop/polymorphic_associations.rb
|
181
|
+
- lib/gitlab/styles/rubocop/cop/rails/include_url_helper.rb
|
167
182
|
- lib/gitlab/styles/rubocop/cop/redirect_with_status.rb
|
168
183
|
- lib/gitlab/styles/rubocop/cop/rspec/base.rb
|
169
184
|
- lib/gitlab/styles/rubocop/cop/rspec/empty_line_after_final_let_it_be.rb
|
@@ -174,6 +189,7 @@ files:
|
|
174
189
|
- lib/gitlab/styles/rubocop/cop/rspec/single_line_hook.rb
|
175
190
|
- lib/gitlab/styles/rubocop/cop/rspec/verbose_include_metadata.rb
|
176
191
|
- lib/gitlab/styles/rubocop/cop/style/hash_transformation.rb
|
192
|
+
- lib/gitlab/styles/rubocop/cop/style/open_struct_use.rb
|
177
193
|
- lib/gitlab/styles/rubocop/cop/without_reactive_cache.rb
|
178
194
|
- lib/gitlab/styles/rubocop/migration_helpers.rb
|
179
195
|
- lib/gitlab/styles/rubocop/model_helpers.rb
|
@@ -184,6 +200,7 @@ files:
|
|
184
200
|
- rubocop-code_reuse.yml
|
185
201
|
- rubocop-default.yml
|
186
202
|
- rubocop-gemspec.yml
|
203
|
+
- rubocop-graphql.yml
|
187
204
|
- rubocop-layout.yml
|
188
205
|
- rubocop-lint.yml
|
189
206
|
- rubocop-metrics.yml
|
@@ -213,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
213
230
|
- !ruby/object:Gem::Version
|
214
231
|
version: '0'
|
215
232
|
requirements: []
|
216
|
-
rubygems_version: 3.1.
|
233
|
+
rubygems_version: 3.1.6
|
217
234
|
signing_key:
|
218
235
|
specification_version: 4
|
219
236
|
summary: GitLab style guides and shared style configs.
|