gitlab-styles 13.0.2 → 13.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +30 -7
- data/Gemfile.lock +8 -8
- data/gitlab-styles.gemspec +1 -1
- data/lib/gitlab/styles/version.rb +1 -1
- data/lib/rubocop/cop/avoid_return_from_blocks.rb +1 -1
- data/lib/rubocop/cop/custom_error_class.rb +1 -1
- data/lib/rubocop/cop/gitlab_security/public_send.rb +1 -1
- data/lib/rubocop/cop/rspec/rails_controller_testing.rb +42 -0
- data/lib/rubocop/cop/style/open_struct_use.rb +1 -1
- data/rubocop-rspec.yml +6 -0
- data/rubocop-style.yml +5 -0
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e57fcdf2fdb535c445887ec28fe2c32809c24b90cf0202a27cf04f086c32fbc
|
4
|
+
data.tar.gz: '074834caba51bf818e60afdffe2260f644d270d065af3eb46dd256d6deb90d5c'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60c696ef6dcde1baac7ff18ba02267f1d275182cf4ffa0bdfe400c7144ae8100bfc9f15e3faea4597e45afc3dd18e3445fda8b55ce1b9251ca57b985f682ab40
|
7
|
+
data.tar.gz: 980a9c08bf84a10dc151c188b66cc60d3e42a953aea058955ad65bc6d8ad32d7498f154ce74257b71a1ef620d58cd3ef1f28c0025f2547c17eb5b5be02e60bb8
|
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
|
-
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
2
|
+
# `rubocop --auto-gen-config --exclude-limit 10000`
|
3
|
+
# on 2025-02-02 02:50:28 UTC using RuboCop version 1.71.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
@@ -22,11 +22,6 @@ InternalAffairs/CopDescriptionWithExample:
|
|
22
22
|
- 'lib/rubocop/cop/performance/rubyzip.rb'
|
23
23
|
- 'lib/rubocop/cop/polymorphic_associations.rb'
|
24
24
|
|
25
|
-
# Offense count: 1
|
26
|
-
InternalAffairs/InheritDeprecatedCopClass:
|
27
|
-
Exclude:
|
28
|
-
- 'lib/rubocop/cop/gitlab_security/json_serialization.rb'
|
29
|
-
|
30
25
|
# Offense count: 10
|
31
26
|
InternalAffairs/MissingCopDepartment:
|
32
27
|
Exclude:
|
@@ -40,3 +35,31 @@ InternalAffairs/MissingCopDepartment:
|
|
40
35
|
- 'lib/rubocop/cop/line_break_around_conditional_block.rb'
|
41
36
|
- 'lib/rubocop/cop/polymorphic_associations.rb'
|
42
37
|
- 'lib/rubocop/cop/redirect_with_status.rb'
|
38
|
+
|
39
|
+
# Offense count: 24
|
40
|
+
InternalAffairs/OnSendWithoutOnCSend:
|
41
|
+
Exclude:
|
42
|
+
- 'lib/rubocop/cop/active_record_dependent.rb'
|
43
|
+
- 'lib/rubocop/cop/active_record_serialize.rb'
|
44
|
+
- 'lib/rubocop/cop/code_reuse/active_record.rb'
|
45
|
+
- 'lib/rubocop/cop/gem_fetcher.rb'
|
46
|
+
- 'lib/rubocop/cop/gitlab_security/deep_munge.rb'
|
47
|
+
- 'lib/rubocop/cop/gitlab_security/json_serialization.rb'
|
48
|
+
- 'lib/rubocop/cop/gitlab_security/redirect_to_params_update.rb'
|
49
|
+
- 'lib/rubocop/cop/gitlab_security/send_file_params.rb'
|
50
|
+
- 'lib/rubocop/cop/gitlab_security/sql_injection.rb'
|
51
|
+
- 'lib/rubocop/cop/gitlab_security/system_command_injection.rb'
|
52
|
+
- 'lib/rubocop/cop/in_batches.rb'
|
53
|
+
- 'lib/rubocop/cop/internal_affairs/deprecate_cop_helper.rb'
|
54
|
+
- 'lib/rubocop/cop/migration/update_large_table.rb'
|
55
|
+
- 'lib/rubocop/cop/performance/rubyzip.rb'
|
56
|
+
- 'lib/rubocop/cop/polymorphic_associations.rb'
|
57
|
+
- 'lib/rubocop/cop/rails/include_url_helper.rb'
|
58
|
+
- 'lib/rubocop/cop/redirect_with_status.rb'
|
59
|
+
- 'lib/rubocop/cop/rspec/have_link_parameters.rb'
|
60
|
+
- 'lib/rubocop/cop/rspec/rails_controller_testing.rb'
|
61
|
+
- 'lib/rubocop/cop/rspec/specify_expected.rb'
|
62
|
+
- 'lib/rubocop/cop/rspec/useless_dynamic_definition.rb'
|
63
|
+
- 'lib/rubocop/cop/rspec/verbose_include_metadata.rb'
|
64
|
+
- 'lib/rubocop/cop/style/hash_transformation.rb'
|
65
|
+
- 'lib/rubocop/cop/style/iso8601_date.rb'
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
gitlab-styles (13.0
|
5
|
-
rubocop (
|
4
|
+
gitlab-styles (13.1.0)
|
5
|
+
rubocop (= 1.71.1)
|
6
6
|
rubocop-capybara (~> 2.21.0)
|
7
7
|
rubocop-factory_bot (~> 2.26.1)
|
8
8
|
rubocop-graphql (~> 1.5.4)
|
@@ -132,7 +132,7 @@ GEM
|
|
132
132
|
rainbow (3.1.1)
|
133
133
|
rake (13.0.6)
|
134
134
|
rchardet (1.8.0)
|
135
|
-
regexp_parser (2.
|
135
|
+
regexp_parser (2.10.0)
|
136
136
|
rexml (3.2.8)
|
137
137
|
strscan (>= 3.0.9)
|
138
138
|
rspec (3.12.0)
|
@@ -156,17 +156,17 @@ GEM
|
|
156
156
|
binding_of_caller
|
157
157
|
rspec-parameterized-core (< 2)
|
158
158
|
rspec-support (3.12.0)
|
159
|
-
rubocop (1.
|
159
|
+
rubocop (1.71.1)
|
160
160
|
json (~> 2.3)
|
161
161
|
language_server-protocol (>= 3.17.0)
|
162
162
|
parallel (~> 1.10)
|
163
163
|
parser (>= 3.3.0.2)
|
164
164
|
rainbow (>= 2.2.2, < 4.0)
|
165
|
-
regexp_parser (>= 2.
|
166
|
-
rubocop-ast (>= 1.
|
165
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
166
|
+
rubocop-ast (>= 1.38.0, < 2.0)
|
167
167
|
ruby-progressbar (~> 1.7)
|
168
|
-
unicode-display_width (>= 2.4.0, <
|
169
|
-
rubocop-ast (1.
|
168
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
169
|
+
rubocop-ast (1.38.0)
|
170
170
|
parser (>= 3.3.1.0)
|
171
171
|
rubocop-capybara (2.21.0)
|
172
172
|
rubocop (~> 1.41)
|
data/gitlab-styles.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ['lib']
|
24
24
|
|
25
|
-
spec.add_dependency 'rubocop', '
|
25
|
+
spec.add_dependency 'rubocop', '1.71.1'
|
26
26
|
spec.add_dependency 'rubocop-capybara', '~> 2.21.0'
|
27
27
|
spec.add_dependency 'rubocop-factory_bot', '~> 2.26.1'
|
28
28
|
spec.add_dependency 'rubocop-graphql', '~> 1.5.4'
|
@@ -51,7 +51,7 @@ module Rubocop
|
|
51
51
|
# So recurse through that to get the name as written in the source.
|
52
52
|
#
|
53
53
|
def class_name_from_node(node, suffix = nil)
|
54
|
-
return unless node&.
|
54
|
+
return unless node&.const_type?
|
55
55
|
|
56
56
|
name = node.children[1].to_s
|
57
57
|
name = "#{name}::#{suffix}" if suffix
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rubocop-rspec'
|
4
|
+
require_relative 'base'
|
5
|
+
|
6
|
+
module Rubocop
|
7
|
+
module Cop
|
8
|
+
module RSpec
|
9
|
+
# Flags the use of `assigns` and `render_template`
|
10
|
+
# in controller and request specs.
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# # bad
|
14
|
+
# ssh_key = create(:personal_key, user: user)
|
15
|
+
# get admin_credentials_path(filter: 'ssh_keys')
|
16
|
+
# expect(assigns(:credentials)).to match_array([ssh_key])
|
17
|
+
#
|
18
|
+
# # good
|
19
|
+
# ssh_keys = create_list(:personal_key, user: user)
|
20
|
+
# get admin_credentials_path(filter: 'ssh_keys')
|
21
|
+
# expect(response.body).to include(ssh_key.title)
|
22
|
+
#
|
23
|
+
# # bad
|
24
|
+
# expect(response).to render_template :show
|
25
|
+
#
|
26
|
+
# # good
|
27
|
+
# expect(response.body).to include('Cool stuff')
|
28
|
+
#
|
29
|
+
# @see https://docs.gitlab.com/ee/development/testing_guide/testing_levels.html#about-controller-tests
|
30
|
+
# @see https://www.bigbinary.com/blog/changes-to-test-controllers-in-rails-5#reasons-for-removing-assigns-and-assert-template
|
31
|
+
class RailsControllerTesting < Base
|
32
|
+
MSG_TEMPLATE = "Avoid using `%{name}`. Instead, assert on observable outputs such as the response body. See https://docs.gitlab.com/ee/development/testing_guide/testing_levels.html#about-controller-tests"
|
33
|
+
|
34
|
+
RESTRICT_ON_SEND = %i[assigns render_template].freeze
|
35
|
+
|
36
|
+
def on_send(node)
|
37
|
+
add_offense(node, message: format(MSG_TEMPLATE, name: node.method_name))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/rubocop-rspec.yml
CHANGED
@@ -174,6 +174,12 @@ RSpec/PredicateMatcher:
|
|
174
174
|
RSpec/RepeatedDescription:
|
175
175
|
Enabled: false
|
176
176
|
|
177
|
+
RSpec/RailsControllerTesting:
|
178
|
+
Enabled: false
|
179
|
+
Include:
|
180
|
+
- 'spec/controllers/**/*'
|
181
|
+
- 'spec/requests/**/*'
|
182
|
+
|
177
183
|
# Ensure RSpec hook blocks are always multi-line.
|
178
184
|
RSpec/SingleLineHook:
|
179
185
|
Enabled: true
|
data/rubocop-style.yml
CHANGED
@@ -127,6 +127,11 @@ Style/DoubleNegation:
|
|
127
127
|
Style/EndBlock:
|
128
128
|
Enabled: true
|
129
129
|
|
130
|
+
# See https://gitlab.com/gitlab-org/gitlab/-/issues/465428
|
131
|
+
Style/EndlessMethod:
|
132
|
+
Enabled: true
|
133
|
+
EnforcedStyle: disallow
|
134
|
+
|
130
135
|
# Favor the use of Fixnum#even? && Fixnum#odd?
|
131
136
|
Style/EvenOdd:
|
132
137
|
Enabled: true
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab-styles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 13.0
|
4
|
+
version: 13.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitLab
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.71.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.71.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rubocop-capybara
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -358,6 +358,7 @@ files:
|
|
358
358
|
- lib/rubocop/cop/rspec/empty_line_after_shared_example.rb
|
359
359
|
- lib/rubocop/cop/rspec/example_starting_character.rb
|
360
360
|
- lib/rubocop/cop/rspec/have_link_parameters.rb
|
361
|
+
- lib/rubocop/cop/rspec/rails_controller_testing.rb
|
361
362
|
- lib/rubocop/cop/rspec/single_line_hook.rb
|
362
363
|
- lib/rubocop/cop/rspec/specify_expected.rb
|
363
364
|
- lib/rubocop/cop/rspec/useless_dynamic_definition.rb
|