gitlab-styles 10.0.0 → 10.1.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/.gitignore +3 -3
- data/.gitlab/merge_request_templates/Release.md +18 -5
- data/.gitlab-ci.yml +3 -0
- data/.rubocop.yml +5 -1
- data/.rubocop_todo.yml +25 -1
- data/Gemfile +0 -16
- data/Gemfile.lock +227 -0
- data/README.md +0 -1
- data/gitlab-styles.gemspec +10 -3
- data/lib/gitlab/styles/rubocop/migration_helpers.rb +1 -1
- data/lib/gitlab/styles/version.rb +1 -1
- data/lib/rubocop/cop/custom_error_class.rb +1 -1
- data/lib/rubocop/cop/internal_affairs/missing_cop_department.rb +80 -0
- data/lib/rubocop/cop/internal_affairs/use_restrict_on_send.rb +99 -0
- data/lib/rubocop/cop/line_break_after_guard_clauses.rb +1 -1
- data/lib/rubocop/cop/line_break_around_conditional_block.rb +1 -1
- data/lib/rubocop/cop/rspec/empty_line_after_shared_example.rb +9 -2
- data/lib/rubocop/cop/rspec/example_starting_character.rb +1 -1
- data/lib/rubocop/cop/rspec/factory_bot/excessive_create_list.rb +52 -0
- data/lib/rubocop/cop/rspec/useless_dynamic_definition.rb +67 -0
- data/lib/rubocop/cop/rspec/verbose_include_metadata.rb +1 -1
- data/rubocop-default.yml +1 -3
- data/rubocop-gemspec.yml +6 -0
- data/rubocop-internal-affairs.yml +11 -0
- data/rubocop-lint.yml +4 -3
- data/rubocop-rails.yml +8 -1
- data/rubocop-rspec.yml +5 -0
- metadata +112 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0cd204f5572b14a03cd4f6faec35d9973f07dcab0579cf17ebb5fc10d56ac6b0
|
|
4
|
+
data.tar.gz: 7a126190155bc1b39eea832c88e4636306f0fafb09f4b6c2c12c9fb275032a8c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ef80fd1223c28800de324bb2e71bc1c4e381137ddf7e4a4605e7d1e6e301cca3fc5cee69146a80fe23213a77c8c459d7037e305372242702d4cc8c9bb2b08c0b
|
|
7
|
+
data.tar.gz: 4f60365ef4232d584eb8ec18f99f8ac5537bd4bf933777d5125c4fb2f71423e7c487dd61f18e9e4e40738c4d02949d9291d7fda7a66fa88442bcdeb8854621c0
|
data/.gitignore
CHANGED
|
@@ -1,13 +1,26 @@
|
|
|
1
|
-
<!-- Replace `<PREVIOUS_VERSION>` with the previous version number
|
|
1
|
+
<!-- Replace `<PREVIOUS_VERSION>` with the previous version number, `<COMMIT_UPDATING_VERSION>` with the latest
|
|
2
2
|
commit from this merge request, and `<NEW_VERSION>` with the upcoming version number. -->
|
|
3
3
|
## Diff
|
|
4
4
|
|
|
5
|
-
https://gitlab.com/gitlab-org/ruby/gems/gitlab-styles
|
|
5
|
+
https://gitlab.com/gitlab-org/ruby/gems/gitlab-styles/-/compare/v<PREVIOUS_VERSION>...<COMMIT_UPDATING_VERSION>
|
|
6
6
|
|
|
7
7
|
## Checklist
|
|
8
8
|
|
|
9
|
-
- [ ]
|
|
10
|
-
- [ ]
|
|
11
|
-
- [ ]
|
|
9
|
+
- [ ] Change the `VERSION` constant to a minor version in `lib/gitlab/styles/version.rb` (you might have to change the version number in the next steps according to [SemVer](https://semver.org)).
|
|
10
|
+
- [ ] Ensure the diff link above is up-to-date.
|
|
11
|
+
- [ ] Add release notes to the [Changelog](#changelog) section below.
|
|
12
|
+
- [ ] Based on the diff and the release notes, update the `version.rb` according to [SemVer](https://semver.org).
|
|
13
|
+
- [ ] Create an MR on `gitlab-org/gitlab` project [with the `New Version of gitlab-styles.md` template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/merge_request_templates/New%20Version%20of%20gitlab-styles.md) to test the new version of `gitlab-styles`, and follow the MR instructions.
|
|
14
|
+
|
|
15
|
+
## Changelog
|
|
16
|
+
|
|
17
|
+
<!--
|
|
18
|
+
Paste output of:
|
|
19
|
+
|
|
20
|
+
curl https://gitlab.com/api/v4/projects/4176070/repository/changelog?version=<NEW_VERSION> | jq -r ".notes"
|
|
21
|
+
|
|
22
|
+
NOTE: Skip `v` in `<NEW_VERSION>`. For example, Use `version=10.0.0` instead of `version=v10.0.0`.
|
|
23
|
+
|
|
24
|
+
-->
|
|
12
25
|
|
|
13
26
|
/label ~"type::maintenance" ~"static code analysis"
|
data/.gitlab-ci.yml
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
inherit_from:
|
|
2
|
-
- .rubocop_todo.yml
|
|
3
2
|
- rubocop-default.yml
|
|
3
|
+
- .rubocop_todo.yml
|
|
4
4
|
|
|
5
5
|
require:
|
|
6
6
|
- rubocop/cop/internal_affairs
|
|
@@ -9,6 +9,10 @@ require:
|
|
|
9
9
|
AllCops:
|
|
10
10
|
NewCops: disable # https://gitlab.com/gitlab-org/ruby/gems/gitlab-styles/-/issues/40
|
|
11
11
|
|
|
12
|
+
Gemspec/DevelopmentDependencies:
|
|
13
|
+
EnforcedStyle: gemspec
|
|
14
|
+
Enabled: true
|
|
15
|
+
|
|
12
16
|
InternalAffairs/DeprecateCopHelper:
|
|
13
17
|
Enabled: true
|
|
14
18
|
Include:
|
data/.rubocop_todo.yml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
2
|
# `rubocop --auto-gen-config`
|
|
3
|
-
# on 2023-
|
|
3
|
+
# on 2023-06-05 10:15:47 UTC using RuboCop version 1.50.2.
|
|
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
|
|
@@ -10,3 +10,27 @@
|
|
|
10
10
|
InternalAffairs/InheritDeprecatedCopClass:
|
|
11
11
|
Exclude:
|
|
12
12
|
- 'lib/rubocop/cop/gitlab_security/json_serialization.rb'
|
|
13
|
+
|
|
14
|
+
# Offense count: 11
|
|
15
|
+
InternalAffairs/MissingCopDepartment:
|
|
16
|
+
Exclude:
|
|
17
|
+
- 'lib/rubocop/cop/active_record_dependent.rb'
|
|
18
|
+
- 'lib/rubocop/cop/active_record_serialize.rb'
|
|
19
|
+
- 'lib/rubocop/cop/avoid_return_from_blocks.rb'
|
|
20
|
+
- 'lib/rubocop/cop/custom_error_class.rb'
|
|
21
|
+
- 'lib/rubocop/cop/gem_fetcher.rb'
|
|
22
|
+
- 'lib/rubocop/cop/in_batches.rb'
|
|
23
|
+
- 'lib/rubocop/cop/line_break_after_guard_clauses.rb'
|
|
24
|
+
- 'lib/rubocop/cop/line_break_around_conditional_block.rb'
|
|
25
|
+
- 'lib/rubocop/cop/polymorphic_associations.rb'
|
|
26
|
+
- 'lib/rubocop/cop/redirect_with_status.rb'
|
|
27
|
+
- 'lib/rubocop/cop/without_reactive_cache.rb'
|
|
28
|
+
|
|
29
|
+
# Offense count: 5
|
|
30
|
+
InternalAffairs/UseRestrictOnSend:
|
|
31
|
+
Exclude:
|
|
32
|
+
- 'lib/rubocop/cop/active_record_dependent.rb'
|
|
33
|
+
- 'lib/rubocop/cop/active_record_serialize.rb'
|
|
34
|
+
- 'lib/rubocop/cop/in_batches.rb'
|
|
35
|
+
- 'lib/rubocop/cop/polymorphic_associations.rb'
|
|
36
|
+
- 'lib/rubocop/cop/without_reactive_cache.rb'
|
data/Gemfile
CHANGED
|
@@ -4,19 +4,3 @@ source 'https://rubygems.org'
|
|
|
4
4
|
|
|
5
5
|
# Specify your gem's dependencies in gitlab-rubocop.gemspec
|
|
6
6
|
gemspec
|
|
7
|
-
|
|
8
|
-
group :development do
|
|
9
|
-
gem 'lefthook', require: false
|
|
10
|
-
gem 'test_file_finder', '~> 0.1.4'
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
group :test do
|
|
14
|
-
# Pin these dependencies, otherwise a new rule could break the CI pipelines
|
|
15
|
-
gem 'rubocop', '1.43.0'
|
|
16
|
-
gem 'rubocop-rspec', '2.18.1'
|
|
17
|
-
gem 'rspec-parameterized-table_syntax', '1.0.0', require: false
|
|
18
|
-
|
|
19
|
-
gem 'simplecov', '~> 0.22.0', require: false
|
|
20
|
-
gem 'simplecov-html', '~> 0.12.3', require: false
|
|
21
|
-
gem 'simplecov-cobertura', '~> 2.1.0', require: false
|
|
22
|
-
end
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
gitlab-styles (10.1.0)
|
|
5
|
+
rubocop (~> 1.50.2)
|
|
6
|
+
rubocop-graphql (~> 0.18)
|
|
7
|
+
rubocop-performance (~> 1.15)
|
|
8
|
+
rubocop-rails (~> 2.17)
|
|
9
|
+
rubocop-rspec (~> 2.22)
|
|
10
|
+
|
|
11
|
+
GEM
|
|
12
|
+
remote: https://rubygems.org/
|
|
13
|
+
specs:
|
|
14
|
+
activesupport (7.0.4.3)
|
|
15
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
16
|
+
i18n (>= 1.6, < 2)
|
|
17
|
+
minitest (>= 5.1)
|
|
18
|
+
tzinfo (~> 2.0)
|
|
19
|
+
addressable (2.8.4)
|
|
20
|
+
public_suffix (>= 2.0.2, < 6.0)
|
|
21
|
+
ast (2.4.2)
|
|
22
|
+
binding_of_caller (1.0.0)
|
|
23
|
+
debug_inspector (>= 0.0.1)
|
|
24
|
+
byebug (11.1.3)
|
|
25
|
+
claide (1.1.0)
|
|
26
|
+
claide-plugins (0.9.2)
|
|
27
|
+
cork
|
|
28
|
+
nap
|
|
29
|
+
open4 (~> 1.3)
|
|
30
|
+
coderay (1.1.3)
|
|
31
|
+
colored2 (3.1.2)
|
|
32
|
+
concurrent-ruby (1.2.2)
|
|
33
|
+
cork (0.3.0)
|
|
34
|
+
colored2 (~> 3.1)
|
|
35
|
+
danger (9.3.0)
|
|
36
|
+
claide (~> 1.0)
|
|
37
|
+
claide-plugins (>= 0.9.2)
|
|
38
|
+
colored2 (~> 3.1)
|
|
39
|
+
cork (~> 0.1)
|
|
40
|
+
faraday (>= 0.9.0, < 3.0)
|
|
41
|
+
faraday-http-cache (~> 2.0)
|
|
42
|
+
git (~> 1.13.0)
|
|
43
|
+
kramdown (~> 2.3)
|
|
44
|
+
kramdown-parser-gfm (~> 1.0)
|
|
45
|
+
no_proxy_fix
|
|
46
|
+
octokit (~> 5.0)
|
|
47
|
+
terminal-table (>= 1, < 4)
|
|
48
|
+
danger-gitlab (8.0.0)
|
|
49
|
+
danger
|
|
50
|
+
gitlab (~> 4.2, >= 4.2.0)
|
|
51
|
+
debug_inspector (1.1.0)
|
|
52
|
+
diff-lcs (1.5.0)
|
|
53
|
+
docile (1.4.0)
|
|
54
|
+
faraday (1.10.3)
|
|
55
|
+
faraday-em_http (~> 1.0)
|
|
56
|
+
faraday-em_synchrony (~> 1.0)
|
|
57
|
+
faraday-excon (~> 1.1)
|
|
58
|
+
faraday-httpclient (~> 1.0)
|
|
59
|
+
faraday-multipart (~> 1.0)
|
|
60
|
+
faraday-net_http (~> 1.0)
|
|
61
|
+
faraday-net_http_persistent (~> 1.0)
|
|
62
|
+
faraday-patron (~> 1.0)
|
|
63
|
+
faraday-rack (~> 1.0)
|
|
64
|
+
faraday-retry (~> 1.0)
|
|
65
|
+
ruby2_keywords (>= 0.0.4)
|
|
66
|
+
faraday-em_http (1.0.0)
|
|
67
|
+
faraday-em_synchrony (1.0.0)
|
|
68
|
+
faraday-excon (1.1.0)
|
|
69
|
+
faraday-http-cache (2.5.0)
|
|
70
|
+
faraday (>= 0.8)
|
|
71
|
+
faraday-httpclient (1.0.1)
|
|
72
|
+
faraday-multipart (1.0.4)
|
|
73
|
+
multipart-post (~> 2)
|
|
74
|
+
faraday-net_http (1.0.1)
|
|
75
|
+
faraday-net_http_persistent (1.2.0)
|
|
76
|
+
faraday-patron (1.0.0)
|
|
77
|
+
faraday-rack (1.0.0)
|
|
78
|
+
faraday-retry (1.0.3)
|
|
79
|
+
git (1.13.2)
|
|
80
|
+
addressable (~> 2.8)
|
|
81
|
+
rchardet (~> 1.8)
|
|
82
|
+
gitlab (4.19.0)
|
|
83
|
+
httparty (~> 0.20)
|
|
84
|
+
terminal-table (>= 1.5.1)
|
|
85
|
+
gitlab-dangerfiles (3.6.7)
|
|
86
|
+
danger (>= 8.4.5)
|
|
87
|
+
danger-gitlab (>= 8.0.0)
|
|
88
|
+
rake
|
|
89
|
+
httparty (0.21.0)
|
|
90
|
+
mini_mime (>= 1.0.0)
|
|
91
|
+
multi_xml (>= 0.5.2)
|
|
92
|
+
i18n (1.13.0)
|
|
93
|
+
concurrent-ruby (~> 1.0)
|
|
94
|
+
json (2.6.3)
|
|
95
|
+
kramdown (2.4.0)
|
|
96
|
+
rexml
|
|
97
|
+
kramdown-parser-gfm (1.1.0)
|
|
98
|
+
kramdown (~> 2.0)
|
|
99
|
+
lefthook (1.3.13)
|
|
100
|
+
method_source (1.0.0)
|
|
101
|
+
mini_mime (1.1.2)
|
|
102
|
+
minitest (5.18.0)
|
|
103
|
+
multi_xml (0.6.0)
|
|
104
|
+
multipart-post (2.3.0)
|
|
105
|
+
nap (1.1.0)
|
|
106
|
+
no_proxy_fix (0.1.2)
|
|
107
|
+
octokit (5.6.1)
|
|
108
|
+
faraday (>= 1, < 3)
|
|
109
|
+
sawyer (~> 0.9)
|
|
110
|
+
open4 (1.3.4)
|
|
111
|
+
parallel (1.23.0)
|
|
112
|
+
parser (3.2.2.1)
|
|
113
|
+
ast (~> 2.4.1)
|
|
114
|
+
proc_to_ast (0.1.0)
|
|
115
|
+
coderay
|
|
116
|
+
parser
|
|
117
|
+
unparser
|
|
118
|
+
pry (0.14.2)
|
|
119
|
+
coderay (~> 1.1)
|
|
120
|
+
method_source (~> 1.0)
|
|
121
|
+
pry-byebug (3.10.1)
|
|
122
|
+
byebug (~> 11.0)
|
|
123
|
+
pry (>= 0.13, < 0.15)
|
|
124
|
+
public_suffix (5.0.1)
|
|
125
|
+
rack (3.0.7)
|
|
126
|
+
rainbow (3.1.1)
|
|
127
|
+
rake (13.0.6)
|
|
128
|
+
rchardet (1.8.0)
|
|
129
|
+
regexp_parser (2.8.0)
|
|
130
|
+
rexml (3.2.5)
|
|
131
|
+
rspec (3.12.0)
|
|
132
|
+
rspec-core (~> 3.12.0)
|
|
133
|
+
rspec-expectations (~> 3.12.0)
|
|
134
|
+
rspec-mocks (~> 3.12.0)
|
|
135
|
+
rspec-core (3.12.2)
|
|
136
|
+
rspec-support (~> 3.12.0)
|
|
137
|
+
rspec-expectations (3.12.3)
|
|
138
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
139
|
+
rspec-support (~> 3.12.0)
|
|
140
|
+
rspec-mocks (3.12.5)
|
|
141
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
142
|
+
rspec-support (~> 3.12.0)
|
|
143
|
+
rspec-parameterized-core (1.0.0)
|
|
144
|
+
parser
|
|
145
|
+
proc_to_ast
|
|
146
|
+
rspec (>= 2.13, < 4)
|
|
147
|
+
unparser
|
|
148
|
+
rspec-parameterized-table_syntax (1.0.0)
|
|
149
|
+
binding_of_caller
|
|
150
|
+
rspec-parameterized-core (< 2)
|
|
151
|
+
rspec-support (3.12.0)
|
|
152
|
+
rubocop (1.50.2)
|
|
153
|
+
json (~> 2.3)
|
|
154
|
+
parallel (~> 1.10)
|
|
155
|
+
parser (>= 3.2.0.0)
|
|
156
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
157
|
+
regexp_parser (>= 1.8, < 3.0)
|
|
158
|
+
rexml (>= 3.2.5, < 4.0)
|
|
159
|
+
rubocop-ast (>= 1.28.0, < 2.0)
|
|
160
|
+
ruby-progressbar (~> 1.7)
|
|
161
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
|
162
|
+
rubocop-ast (1.28.1)
|
|
163
|
+
parser (>= 3.2.1.0)
|
|
164
|
+
rubocop-capybara (2.18.0)
|
|
165
|
+
rubocop (~> 1.41)
|
|
166
|
+
rubocop-factory_bot (2.23.0)
|
|
167
|
+
rubocop (~> 1.33)
|
|
168
|
+
rubocop-graphql (0.19.0)
|
|
169
|
+
rubocop (>= 0.87, < 2)
|
|
170
|
+
rubocop-performance (1.17.1)
|
|
171
|
+
rubocop (>= 1.7.0, < 2.0)
|
|
172
|
+
rubocop-ast (>= 0.4.0)
|
|
173
|
+
rubocop-rails (2.19.1)
|
|
174
|
+
activesupport (>= 4.2.0)
|
|
175
|
+
rack (>= 1.1)
|
|
176
|
+
rubocop (>= 1.33.0, < 2.0)
|
|
177
|
+
rubocop-rake (0.6.0)
|
|
178
|
+
rubocop (~> 1.0)
|
|
179
|
+
rubocop-rspec (2.22.0)
|
|
180
|
+
rubocop (~> 1.33)
|
|
181
|
+
rubocop-capybara (~> 2.17)
|
|
182
|
+
rubocop-factory_bot (~> 2.22)
|
|
183
|
+
ruby-progressbar (1.13.0)
|
|
184
|
+
ruby2_keywords (0.0.5)
|
|
185
|
+
sawyer (0.9.2)
|
|
186
|
+
addressable (>= 2.3.5)
|
|
187
|
+
faraday (>= 0.17.3, < 3)
|
|
188
|
+
simplecov (0.22.0)
|
|
189
|
+
docile (~> 1.1)
|
|
190
|
+
simplecov-html (~> 0.11)
|
|
191
|
+
simplecov_json_formatter (~> 0.1)
|
|
192
|
+
simplecov-cobertura (2.1.0)
|
|
193
|
+
rexml
|
|
194
|
+
simplecov (~> 0.19)
|
|
195
|
+
simplecov-html (0.12.3)
|
|
196
|
+
simplecov_json_formatter (0.1.4)
|
|
197
|
+
terminal-table (3.0.2)
|
|
198
|
+
unicode-display_width (>= 1.1.1, < 3)
|
|
199
|
+
test_file_finder (0.1.4)
|
|
200
|
+
faraday (~> 1.0)
|
|
201
|
+
tzinfo (2.0.6)
|
|
202
|
+
concurrent-ruby (~> 1.0)
|
|
203
|
+
unicode-display_width (2.4.2)
|
|
204
|
+
unparser (0.6.7)
|
|
205
|
+
diff-lcs (~> 1.3)
|
|
206
|
+
parser (>= 3.2.0)
|
|
207
|
+
|
|
208
|
+
PLATFORMS
|
|
209
|
+
ruby
|
|
210
|
+
|
|
211
|
+
DEPENDENCIES
|
|
212
|
+
bundler (~> 2.1)
|
|
213
|
+
gitlab-dangerfiles (~> 3.6.7)
|
|
214
|
+
gitlab-styles!
|
|
215
|
+
lefthook (~> 1.3.13)
|
|
216
|
+
pry-byebug (~> 3.10)
|
|
217
|
+
rake (~> 13.0)
|
|
218
|
+
rspec (~> 3.0)
|
|
219
|
+
rspec-parameterized-table_syntax (~> 1.0.0)
|
|
220
|
+
rubocop-rake (~> 0.6)
|
|
221
|
+
simplecov (~> 0.22.0)
|
|
222
|
+
simplecov-cobertura (~> 2.1.0)
|
|
223
|
+
simplecov-html (~> 0.12.3)
|
|
224
|
+
test_file_finder (~> 0.1.4)
|
|
225
|
+
|
|
226
|
+
BUNDLED WITH
|
|
227
|
+
2.4.13
|
data/README.md
CHANGED
|
@@ -91,7 +91,6 @@ To release a new version:
|
|
|
91
91
|
1. Create a Merge Request.
|
|
92
92
|
1. Use Merge Request template [Release.md](https://gitlab.com/gitlab-org/ruby/gems/gitlab-styles/-/blob/master/.gitlab/merge_request_templates/Release.md).
|
|
93
93
|
1. Follow the instructions.
|
|
94
|
-
1. (Optional, but appreciated) Create an MR on `gitlab-org/gitlab` project [with the `New Version of gitlab-styles.md` template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/merge_request_templates/New%20Version%20of%20gitlab-styles.md) to test the new version of `gitlab-styles`, and follow the MR instructions.
|
|
95
94
|
1. After the Merge Request has been merged, a new gem version is [published automatically](https://gitlab.com/gitlab-org/quality/pipeline-common/-/blob/master/ci/gem-release.yml)
|
|
96
95
|
|
|
97
96
|
See [!123](https://gitlab.com/gitlab-org/ruby/gems/gitlab-styles/-/merge_requests/123) as an example.
|
data/gitlab-styles.gemspec
CHANGED
|
@@ -22,15 +22,22 @@ 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', '~> 1.
|
|
25
|
+
spec.add_dependency 'rubocop', '~> 1.50.2'
|
|
26
26
|
spec.add_dependency 'rubocop-graphql', '~> 0.18'
|
|
27
27
|
spec.add_dependency 'rubocop-performance', '~> 1.15'
|
|
28
28
|
spec.add_dependency 'rubocop-rails', '~> 2.17'
|
|
29
|
-
spec.add_dependency 'rubocop-rspec', '~> 2.
|
|
29
|
+
spec.add_dependency 'rubocop-rspec', '~> 2.22'
|
|
30
30
|
|
|
31
31
|
spec.add_development_dependency 'bundler', '~> 2.1'
|
|
32
|
-
spec.add_development_dependency 'gitlab-dangerfiles', '~>
|
|
32
|
+
spec.add_development_dependency 'gitlab-dangerfiles', '~> 3.6.7'
|
|
33
|
+
spec.add_development_dependency 'lefthook', '~> 1.3.13'
|
|
34
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.10'
|
|
33
35
|
spec.add_development_dependency 'rake', '~> 13.0'
|
|
34
36
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
37
|
+
spec.add_development_dependency 'rspec-parameterized-table_syntax', '~> 1.0.0'
|
|
35
38
|
spec.add_development_dependency 'rubocop-rake', '~> 0.6'
|
|
39
|
+
spec.add_development_dependency 'simplecov', '~> 0.22.0'
|
|
40
|
+
spec.add_development_dependency 'simplecov-cobertura', '~> 2.1.0'
|
|
41
|
+
spec.add_development_dependency 'simplecov-html', '~> 0.12.3'
|
|
42
|
+
spec.add_development_dependency 'test_file_finder', '~> 0.1.4'
|
|
36
43
|
end
|
|
@@ -7,7 +7,7 @@ module Gitlab
|
|
|
7
7
|
module MigrationHelpers
|
|
8
8
|
# Returns true if the given node originated from the db/migrate directory.
|
|
9
9
|
def in_migration?(node)
|
|
10
|
-
dirname = File.dirname(node.
|
|
10
|
+
dirname = File.dirname(node.source_range.source_buffer.name)
|
|
11
11
|
|
|
12
12
|
dirname.end_with?(
|
|
13
13
|
'db/migrate',
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RuboCop
|
|
4
|
+
module Cop
|
|
5
|
+
module InternalAffairs
|
|
6
|
+
# Enforces the use of explicit department names for cop rules.
|
|
7
|
+
#
|
|
8
|
+
# @example
|
|
9
|
+
# # bad
|
|
10
|
+
# module RuboCop
|
|
11
|
+
# module Cop
|
|
12
|
+
# class Implicit
|
|
13
|
+
# end
|
|
14
|
+
# end
|
|
15
|
+
# end
|
|
16
|
+
#
|
|
17
|
+
# module RuboCop
|
|
18
|
+
# module Cop
|
|
19
|
+
# module Cop
|
|
20
|
+
# class Explicit
|
|
21
|
+
# end
|
|
22
|
+
# end
|
|
23
|
+
# end
|
|
24
|
+
# end
|
|
25
|
+
#
|
|
26
|
+
# # good
|
|
27
|
+
# module RuboCop
|
|
28
|
+
# module Cop
|
|
29
|
+
# module Foo
|
|
30
|
+
# class Implicit
|
|
31
|
+
# end
|
|
32
|
+
# end
|
|
33
|
+
# end
|
|
34
|
+
# end
|
|
35
|
+
#
|
|
36
|
+
# module RuboCop
|
|
37
|
+
# module Cop
|
|
38
|
+
# module Foo
|
|
39
|
+
# class Explicit
|
|
40
|
+
# end
|
|
41
|
+
# end
|
|
42
|
+
# end
|
|
43
|
+
# end
|
|
44
|
+
class MissingCopDepartment < Base
|
|
45
|
+
MSG = 'Define a proper department. Using `Cop/` as department is discourged.'
|
|
46
|
+
|
|
47
|
+
COP_DEPARTMENT = 'Cop'
|
|
48
|
+
|
|
49
|
+
def on_class(node)
|
|
50
|
+
namespace = full_namespace(node)
|
|
51
|
+
|
|
52
|
+
# Skip top-level RuboCop::Cop
|
|
53
|
+
names = namespace.drop(2)
|
|
54
|
+
|
|
55
|
+
add_offense(node.loc.name) if names.size < 2 || names.first == COP_DEPARTMENT
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
private
|
|
59
|
+
|
|
60
|
+
def full_namespace(node)
|
|
61
|
+
(node_namespace(node) + parents_namespace(node)).reverse
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def node_namespace(node)
|
|
65
|
+
name_parts(node).reverse
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def parents_namespace(node)
|
|
69
|
+
node
|
|
70
|
+
.each_ancestor(:module, :class)
|
|
71
|
+
.flat_map { |node| name_parts(node) }
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def name_parts(node)
|
|
75
|
+
node.identifier.source.split('::')
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RuboCop
|
|
4
|
+
module Cop
|
|
5
|
+
module InternalAffairs
|
|
6
|
+
# Flags if `RESTRICT_ON_SEND` constant not defined and method name is
|
|
7
|
+
# checked programmatically in `on_send` methods.
|
|
8
|
+
#
|
|
9
|
+
# @example
|
|
10
|
+
# # bad
|
|
11
|
+
# def on_send(node)
|
|
12
|
+
# return unless method_name(node) == :foo
|
|
13
|
+
# return unless node.children[1] == :foo
|
|
14
|
+
# return unless METHOD_NAMES.include?(method_name(node))
|
|
15
|
+
#
|
|
16
|
+
# name = node.children[1]
|
|
17
|
+
# return unless name == :foo
|
|
18
|
+
# name2 = method_name(node)
|
|
19
|
+
# return unless name == :foo
|
|
20
|
+
#
|
|
21
|
+
# # more code
|
|
22
|
+
# end
|
|
23
|
+
#
|
|
24
|
+
# # good
|
|
25
|
+
# RESTRICT_ON_SEND = %i[foo].freeze
|
|
26
|
+
#
|
|
27
|
+
# def on_send(node)
|
|
28
|
+
# # more code
|
|
29
|
+
# end
|
|
30
|
+
#
|
|
31
|
+
# # ignored - not `on_send`
|
|
32
|
+
# def on_def(node)
|
|
33
|
+
# return unless method_name(node) == :foo
|
|
34
|
+
# end
|
|
35
|
+
#
|
|
36
|
+
# # ignored - `else` branch
|
|
37
|
+
# def on_send(node)
|
|
38
|
+
# if method_name(node) == :foo
|
|
39
|
+
# add_offense(node)
|
|
40
|
+
# else
|
|
41
|
+
# something_else
|
|
42
|
+
# end
|
|
43
|
+
# end
|
|
44
|
+
class UseRestrictOnSend < Base
|
|
45
|
+
MSG = 'Define constant `RESTRICT_ON_SEND` to speed up calls to `on_send`. ' \
|
|
46
|
+
'The following line is then no longer necessary:'
|
|
47
|
+
|
|
48
|
+
# @!method method_name_plain(node)
|
|
49
|
+
def_node_matcher :method_name_plain, <<~PATTERN
|
|
50
|
+
{
|
|
51
|
+
(send _ :method_name _ ...) # method_name(node)
|
|
52
|
+
(send
|
|
53
|
+
(send _ :children) :[] (int 1) # node.children[1]
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
PATTERN
|
|
57
|
+
|
|
58
|
+
# @!method method_name_call(node)
|
|
59
|
+
def_node_matcher :method_name_call, <<~PATTERN
|
|
60
|
+
{
|
|
61
|
+
#method_name_plain
|
|
62
|
+
(lvar %1)
|
|
63
|
+
}
|
|
64
|
+
PATTERN
|
|
65
|
+
|
|
66
|
+
# @!method method_name_assignment(node)
|
|
67
|
+
def_node_search :method_name_assignment, <<~PATTERN
|
|
68
|
+
(lvasgn $_name #method_name_plain)
|
|
69
|
+
PATTERN
|
|
70
|
+
|
|
71
|
+
# @!method method_name_check(node)
|
|
72
|
+
def_node_search :method_name_check, <<~PATTERN
|
|
73
|
+
(if
|
|
74
|
+
${
|
|
75
|
+
(send #method_name_call(%1) {:== :!=} _) # method_name(node) == foo
|
|
76
|
+
(send _ :include? #method_name_call(%1)) # a.include?(method_name(node))
|
|
77
|
+
}
|
|
78
|
+
{!nil? nil? | nil? !nil?} # has either `if` or `else` branch - not both
|
|
79
|
+
)
|
|
80
|
+
PATTERN
|
|
81
|
+
|
|
82
|
+
def on_def(node)
|
|
83
|
+
return unless node.method?(:on_send)
|
|
84
|
+
return if @restrict_on_send_set
|
|
85
|
+
|
|
86
|
+
local_assignments = method_name_assignment(node).to_set
|
|
87
|
+
|
|
88
|
+
method_name_check(node, local_assignments) do |call_node|
|
|
89
|
+
add_offense(call_node)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def on_casgn(node)
|
|
94
|
+
@restrict_on_send_set = true if node.name == :RESTRICT_ON_SEND
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
@@ -71,7 +71,7 @@ module Rubocop
|
|
|
71
71
|
return if next_line(node).blank? || clause_last_line?(next_line(node)) || guard_clause?(next_sibling(node))
|
|
72
72
|
|
|
73
73
|
add_offense(node) do |corrector|
|
|
74
|
-
corrector.insert_after(node
|
|
74
|
+
corrector.insert_after(node, "\n")
|
|
75
75
|
end
|
|
76
76
|
end
|
|
77
77
|
|
|
@@ -44,8 +44,15 @@ module Rubocop
|
|
|
44
44
|
MSG = 'Add an empty line after `%<example>s` block.'
|
|
45
45
|
|
|
46
46
|
# @!method shared_examples(node)
|
|
47
|
-
def_node_matcher :shared_examples,
|
|
48
|
-
|
|
47
|
+
def_node_matcher :shared_examples, <<~PATTERN
|
|
48
|
+
{
|
|
49
|
+
(block (send #rspec? #SharedGroups.all ...) ...)
|
|
50
|
+
{
|
|
51
|
+
(block (send nil? #Includes.all ...) ...)
|
|
52
|
+
(send nil? #Includes.all ...)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
PATTERN
|
|
49
56
|
|
|
50
57
|
def on_block(node)
|
|
51
58
|
shared_examples(node) do
|
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
module FactoryBot
|
|
10
|
+
# Check for create_list FactoryBot declarations higher than configured MaxAmount.
|
|
11
|
+
#
|
|
12
|
+
# @example MaxAmount: 20
|
|
13
|
+
# We do not allow more than 20 items to be created.
|
|
14
|
+
#
|
|
15
|
+
# # bad
|
|
16
|
+
# create_list(:merge_request, 1000, state: :opened)
|
|
17
|
+
#
|
|
18
|
+
# # good
|
|
19
|
+
# create_list(:merge_request, 15, state: :opened)
|
|
20
|
+
#
|
|
21
|
+
# @example
|
|
22
|
+
# We do not allow more than 10 items to be created (default)
|
|
23
|
+
# # bad
|
|
24
|
+
# create_list(:merge_request, 1000, state: :opened)
|
|
25
|
+
#
|
|
26
|
+
# # good
|
|
27
|
+
# create_list(:merge_request, 10, state: :opened)
|
|
28
|
+
#
|
|
29
|
+
class ExcessiveCreateList < Base
|
|
30
|
+
MESSAGE = 'Avoid using `create_list` with more than %{max_amount} items.'
|
|
31
|
+
|
|
32
|
+
# @!method create_list?(node)
|
|
33
|
+
def_node_matcher :create_list?, <<~PATTERN
|
|
34
|
+
(send nil? :create_list (sym ...) $(int _) ...)
|
|
35
|
+
PATTERN
|
|
36
|
+
|
|
37
|
+
RESTRICT_ON_SEND = %i[create_list].freeze
|
|
38
|
+
|
|
39
|
+
def on_send(node)
|
|
40
|
+
number_node = create_list?(node)
|
|
41
|
+
return unless number_node
|
|
42
|
+
|
|
43
|
+
max_amount = cop_config['MaxAmount']
|
|
44
|
+
return if number_node.value <= max_amount
|
|
45
|
+
|
|
46
|
+
add_offense(number_node, message: format(MESSAGE, max_amount: max_amount))
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base'
|
|
4
|
+
|
|
5
|
+
module Rubocop
|
|
6
|
+
module Cop
|
|
7
|
+
module RSpec
|
|
8
|
+
# Flags useless dynamic hook/let definitions via `.each`, `.each_key`, or
|
|
9
|
+
# `.each_value` without defining a wrapping `context` explicitly inside
|
|
10
|
+
# the loop block. Without it, the let definition will always/only be set
|
|
11
|
+
# to the final value.
|
|
12
|
+
#
|
|
13
|
+
# @example
|
|
14
|
+
#
|
|
15
|
+
# # bad
|
|
16
|
+
# context 'foo' do
|
|
17
|
+
# [true, false].each do |bool|
|
|
18
|
+
# before do
|
|
19
|
+
# stub_something(bool: bool)
|
|
20
|
+
# end
|
|
21
|
+
#
|
|
22
|
+
# let(:foo) { build(:model, bool: bool) }
|
|
23
|
+
#
|
|
24
|
+
# it 'works' do
|
|
25
|
+
# # `bool` is always `false`
|
|
26
|
+
# end
|
|
27
|
+
# end
|
|
28
|
+
# end
|
|
29
|
+
#
|
|
30
|
+
# # good
|
|
31
|
+
# context 'foo' do
|
|
32
|
+
# [true, false].each do |bool|
|
|
33
|
+
# context "with bool #{bool}" do # <--
|
|
34
|
+
# before do
|
|
35
|
+
# stub_something(bool: bool)
|
|
36
|
+
# end
|
|
37
|
+
#
|
|
38
|
+
# let(:foo) { build(:model, bool: bool) }
|
|
39
|
+
#
|
|
40
|
+
# it 'works' do
|
|
41
|
+
# # `bool` is `true` and then `false`
|
|
42
|
+
# end
|
|
43
|
+
# end
|
|
44
|
+
# end
|
|
45
|
+
# end
|
|
46
|
+
class UselessDynamicDefinition < Base
|
|
47
|
+
MSG = 'Avoid useless dynamic definitions without `context`.'
|
|
48
|
+
|
|
49
|
+
RESTRICT_ON_SEND = %i[each each_key each_value].freeze
|
|
50
|
+
|
|
51
|
+
def on_send(node)
|
|
52
|
+
return unless dynamic_definition?(node.parent)
|
|
53
|
+
|
|
54
|
+
add_offense(node.loc.selector)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
private
|
|
58
|
+
|
|
59
|
+
def dynamic_definition?(node)
|
|
60
|
+
group = RuboCop::RSpec::ExampleGroup.new(node)
|
|
61
|
+
|
|
62
|
+
group.lets.any? || group.hooks.any?
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -42,7 +42,7 @@ module Rubocop
|
|
|
42
42
|
invalid_metadata_matches(node) do |match|
|
|
43
43
|
add_offense(node, message: format(MSG, good(match), bad(match))) do |corrector|
|
|
44
44
|
invalid_metadata_matches(node) do |match|
|
|
45
|
-
corrector.replace(match
|
|
45
|
+
corrector.replace(match, good(match))
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
end
|
data/rubocop-default.yml
CHANGED
|
@@ -13,6 +13,7 @@ inherit_from:
|
|
|
13
13
|
- rubocop-fips.yml
|
|
14
14
|
- rubocop-gemspec.yml
|
|
15
15
|
- rubocop-graphql.yml
|
|
16
|
+
- rubocop-internal-affairs.yml
|
|
16
17
|
- rubocop-layout.yml
|
|
17
18
|
- rubocop-lint.yml
|
|
18
19
|
- rubocop-metrics.yml
|
|
@@ -23,6 +24,3 @@ inherit_from:
|
|
|
23
24
|
- rubocop-rspec.yml
|
|
24
25
|
- rubocop-security.yml
|
|
25
26
|
- rubocop-style.yml
|
|
26
|
-
|
|
27
|
-
InternalAffairs/DeprecateCopHelper:
|
|
28
|
-
Enabled: false
|
data/rubocop-gemspec.yml
CHANGED
|
@@ -4,3 +4,9 @@
|
|
|
4
4
|
Gemspec/OrderedDependencies:
|
|
5
5
|
Include:
|
|
6
6
|
- '**/*.gemspec'
|
|
7
|
+
|
|
8
|
+
# Enforce that development dependencies for a gem are specified in Gemfile,
|
|
9
|
+
# rather than in the gemspec using add_development_dependency
|
|
10
|
+
# Reason: Each project may decide to use a different strategy.
|
|
11
|
+
Gemspec/DevelopmentDependencies:
|
|
12
|
+
Enabled: false
|
data/rubocop-lint.yml
CHANGED
|
@@ -27,10 +27,11 @@ Lint/AmbiguousRange:
|
|
|
27
27
|
Lint/AmbiguousRegexpLiteral:
|
|
28
28
|
Enabled: true
|
|
29
29
|
|
|
30
|
-
# This cop checks for assignments in the conditions of
|
|
31
|
-
#
|
|
30
|
+
# This cop checks for assignments in the conditions of if/while/until.
|
|
31
|
+
# Forbid assignments within conditions.
|
|
32
32
|
Lint/AssignmentInCondition:
|
|
33
|
-
Enabled:
|
|
33
|
+
Enabled: true
|
|
34
|
+
AllowSafeAssignment: false
|
|
34
35
|
|
|
35
36
|
# Checks for places where binary operator has identical operands
|
|
36
37
|
Lint/BinaryOperatorWithIdenticalOperands:
|
data/rubocop-rails.yml
CHANGED
|
@@ -140,7 +140,7 @@ Rails/Output:
|
|
|
140
140
|
# This cop checks for the use of output safety calls like html_safe and
|
|
141
141
|
# raw.
|
|
142
142
|
Rails/OutputSafety:
|
|
143
|
-
Enabled:
|
|
143
|
+
Enabled: true
|
|
144
144
|
|
|
145
145
|
# Enforces the use of pluck over map.
|
|
146
146
|
# https://docs.rubocop.org/rubocop-rails/2.8/cops_rails.html#railspluck
|
|
@@ -196,6 +196,13 @@ Rails/SquishedSQLHeredocs:
|
|
|
196
196
|
Rails/TimeZone:
|
|
197
197
|
Enabled: false
|
|
198
198
|
|
|
199
|
+
# Checks for the use of exit statements (namely return, break and throw) in
|
|
200
|
+
# transactions. This is due to the eventual unexpected behavior when using
|
|
201
|
+
# ActiveRecord >= 7, where transactions exited using these statements are being
|
|
202
|
+
# rollbacked rather than committed (pre ActiveRecord 7 behavior).
|
|
203
|
+
Rails/TransactionExitStatement:
|
|
204
|
+
Enabled: true
|
|
205
|
+
|
|
199
206
|
# This cop checks for the use of old-style attribute validation macros.
|
|
200
207
|
Rails/Validation:
|
|
201
208
|
Enabled: true
|
data/rubocop-rspec.yml
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
require:
|
|
3
3
|
- ./lib/gitlab/styles/rubocop
|
|
4
4
|
|
|
5
|
+
# Check for create_list FactoryBot declarations higher than MaxAmount
|
|
6
|
+
RSpec/FactoryBot/ExcessiveCreateList:
|
|
7
|
+
Enabled: true
|
|
8
|
+
MaxAmount: 10
|
|
9
|
+
|
|
5
10
|
# Check that instances are not being stubbed globally.
|
|
6
11
|
RSpec/AnyInstance:
|
|
7
12
|
Enabled: false
|
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: 10.
|
|
4
|
+
version: 10.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: 2023-
|
|
11
|
+
date: 2023-06-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rubocop
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.
|
|
19
|
+
version: 1.50.2
|
|
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.50.2
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rubocop-graphql
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,14 +72,14 @@ dependencies:
|
|
|
72
72
|
requirements:
|
|
73
73
|
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '2.
|
|
75
|
+
version: '2.22'
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '2.
|
|
82
|
+
version: '2.22'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: bundler
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,14 +100,42 @@ dependencies:
|
|
|
100
100
|
requirements:
|
|
101
101
|
- - "~>"
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
103
|
+
version: 3.6.7
|
|
104
104
|
type: :development
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
110
|
+
version: 3.6.7
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: lefthook
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - "~>"
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: 1.3.13
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: 1.3.13
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: pry-byebug
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '3.10'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '3.10'
|
|
111
139
|
- !ruby/object:Gem::Dependency
|
|
112
140
|
name: rake
|
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -136,6 +164,20 @@ dependencies:
|
|
|
136
164
|
- - "~>"
|
|
137
165
|
- !ruby/object:Gem::Version
|
|
138
166
|
version: '3.0'
|
|
167
|
+
- !ruby/object:Gem::Dependency
|
|
168
|
+
name: rspec-parameterized-table_syntax
|
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
|
170
|
+
requirements:
|
|
171
|
+
- - "~>"
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: 1.0.0
|
|
174
|
+
type: :development
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - "~>"
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: 1.0.0
|
|
139
181
|
- !ruby/object:Gem::Dependency
|
|
140
182
|
name: rubocop-rake
|
|
141
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -150,6 +192,62 @@ dependencies:
|
|
|
150
192
|
- - "~>"
|
|
151
193
|
- !ruby/object:Gem::Version
|
|
152
194
|
version: '0.6'
|
|
195
|
+
- !ruby/object:Gem::Dependency
|
|
196
|
+
name: simplecov
|
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
|
198
|
+
requirements:
|
|
199
|
+
- - "~>"
|
|
200
|
+
- !ruby/object:Gem::Version
|
|
201
|
+
version: 0.22.0
|
|
202
|
+
type: :development
|
|
203
|
+
prerelease: false
|
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
205
|
+
requirements:
|
|
206
|
+
- - "~>"
|
|
207
|
+
- !ruby/object:Gem::Version
|
|
208
|
+
version: 0.22.0
|
|
209
|
+
- !ruby/object:Gem::Dependency
|
|
210
|
+
name: simplecov-cobertura
|
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
|
212
|
+
requirements:
|
|
213
|
+
- - "~>"
|
|
214
|
+
- !ruby/object:Gem::Version
|
|
215
|
+
version: 2.1.0
|
|
216
|
+
type: :development
|
|
217
|
+
prerelease: false
|
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
219
|
+
requirements:
|
|
220
|
+
- - "~>"
|
|
221
|
+
- !ruby/object:Gem::Version
|
|
222
|
+
version: 2.1.0
|
|
223
|
+
- !ruby/object:Gem::Dependency
|
|
224
|
+
name: simplecov-html
|
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
|
226
|
+
requirements:
|
|
227
|
+
- - "~>"
|
|
228
|
+
- !ruby/object:Gem::Version
|
|
229
|
+
version: 0.12.3
|
|
230
|
+
type: :development
|
|
231
|
+
prerelease: false
|
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
233
|
+
requirements:
|
|
234
|
+
- - "~>"
|
|
235
|
+
- !ruby/object:Gem::Version
|
|
236
|
+
version: 0.12.3
|
|
237
|
+
- !ruby/object:Gem::Dependency
|
|
238
|
+
name: test_file_finder
|
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
|
240
|
+
requirements:
|
|
241
|
+
- - "~>"
|
|
242
|
+
- !ruby/object:Gem::Version
|
|
243
|
+
version: 0.1.4
|
|
244
|
+
type: :development
|
|
245
|
+
prerelease: false
|
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
247
|
+
requirements:
|
|
248
|
+
- - "~>"
|
|
249
|
+
- !ruby/object:Gem::Version
|
|
250
|
+
version: 0.1.4
|
|
153
251
|
description:
|
|
154
252
|
email:
|
|
155
253
|
- gitlab_rubygems@gitlab.com
|
|
@@ -171,6 +269,7 @@ files:
|
|
|
171
269
|
- CONTRIBUTING.md
|
|
172
270
|
- Dangerfile
|
|
173
271
|
- Gemfile
|
|
272
|
+
- Gemfile.lock
|
|
174
273
|
- LICENSE.md
|
|
175
274
|
- README.md
|
|
176
275
|
- Rakefile
|
|
@@ -201,6 +300,8 @@ files:
|
|
|
201
300
|
- lib/rubocop/cop/gitlab_security/system_command_injection.rb
|
|
202
301
|
- lib/rubocop/cop/in_batches.rb
|
|
203
302
|
- lib/rubocop/cop/internal_affairs/deprecate_cop_helper.rb
|
|
303
|
+
- lib/rubocop/cop/internal_affairs/missing_cop_department.rb
|
|
304
|
+
- lib/rubocop/cop/internal_affairs/use_restrict_on_send.rb
|
|
204
305
|
- lib/rubocop/cop/line_break_after_guard_clauses.rb
|
|
205
306
|
- lib/rubocop/cop/line_break_around_conditional_block.rb
|
|
206
307
|
- lib/rubocop/cop/migration/update_large_table.rb
|
|
@@ -212,8 +313,10 @@ files:
|
|
|
212
313
|
- lib/rubocop/cop/rspec/empty_line_after_let_block.rb
|
|
213
314
|
- lib/rubocop/cop/rspec/empty_line_after_shared_example.rb
|
|
214
315
|
- lib/rubocop/cop/rspec/example_starting_character.rb
|
|
316
|
+
- lib/rubocop/cop/rspec/factory_bot/excessive_create_list.rb
|
|
215
317
|
- lib/rubocop/cop/rspec/have_link_parameters.rb
|
|
216
318
|
- lib/rubocop/cop/rspec/single_line_hook.rb
|
|
319
|
+
- lib/rubocop/cop/rspec/useless_dynamic_definition.rb
|
|
217
320
|
- lib/rubocop/cop/rspec/verbose_include_metadata.rb
|
|
218
321
|
- lib/rubocop/cop/style/hash_transformation.rb
|
|
219
322
|
- lib/rubocop/cop/style/open_struct_use.rb
|
|
@@ -226,6 +329,7 @@ files:
|
|
|
226
329
|
- rubocop-fips.yml
|
|
227
330
|
- rubocop-gemspec.yml
|
|
228
331
|
- rubocop-graphql.yml
|
|
332
|
+
- rubocop-internal-affairs.yml
|
|
229
333
|
- rubocop-layout.yml
|
|
230
334
|
- rubocop-lint.yml
|
|
231
335
|
- rubocop-metrics.yml
|