gitlab-styles 6.5.0 → 7.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/.gitlab/changelog_config.yml +13 -0
- data/.gitlab/merge_request_templates/Release.md +9 -31
- data/.gitlab-ci.yml +3 -1
- data/Dangerfile +5 -0
- data/gitlab-styles.gemspec +2 -1
- data/lib/gitlab/styles/common/banned_constants.rb +28 -0
- data/lib/gitlab/styles/rubocop/cop/active_record_dependent.rb +6 -2
- data/lib/gitlab/styles/rubocop/cop/avoid_return_from_blocks.rb +81 -0
- data/lib/gitlab/styles/rubocop/cop/code_reuse/active_record.rb +0 -46
- data/lib/gitlab/styles/rubocop/cop/fips/md5.rb +31 -0
- data/lib/gitlab/styles/rubocop/cop/fips/open_ssl.rb +35 -0
- data/lib/gitlab/styles/rubocop/cop/fips/sha1.rb +31 -0
- data/lib/gitlab/styles/rubocop/cop/performance/rubyzip.rb +39 -0
- data/lib/gitlab/styles/version.rb +1 -1
- data/rubocop-default.yml +1 -0
- data/rubocop-fips.yml +15 -0
- data/rubocop-performance.yml +7 -0
- data/rubocop-rspec.yml +3 -2
- metadata +26 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdbe53a3630aedb6f9a4eb87e46ab9becc5b924dbaf2122eca8f8634ffa46d11
|
4
|
+
data.tar.gz: 8b64b09817b3d57edec615305e973f9aa86312bfc19b25cf999111f721d16cf3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 691d29df5dd389a90f9169e0caa3637c5abad270eeab8e55742b2d45542056d819c18f24723b1e897e1f1cc343d1a6aa740efcb17df1eb6b1517ef580ad2dabd
|
7
|
+
data.tar.gz: e1ceae95be87aec10561836e415f7d12d3e59404d24604097efae1fb99290038eb77d1013f03982fae00d5ad1c819d72385a505b247580b2d16c32c7c390e7c2
|
@@ -0,0 +1,13 @@
|
|
1
|
+
---
|
2
|
+
# Settings for generating changelogs using the GitLab API. See
|
3
|
+
# https://docs.gitlab.com/ee/api/repositories.html#generate-changelog-data for
|
4
|
+
# more information.
|
5
|
+
categories:
|
6
|
+
added: Added
|
7
|
+
fixed: Fixed
|
8
|
+
changed: Changed
|
9
|
+
deprecated: Deprecated
|
10
|
+
removed: Removed
|
11
|
+
security: Security
|
12
|
+
performance: Performance
|
13
|
+
other: Other
|
@@ -1,35 +1,13 @@
|
|
1
|
-
<!-- Replace
|
2
|
-
|
3
|
-
|
1
|
+
<!-- Replace `<PREVIOUS_VERSION>` with the previous version number here, `<COMMIT_UPDATING_VERSION>` with the latest
|
2
|
+
commit from this merge request, and `<NEW_VERSION>` with the upcoming version number. -->
|
3
|
+
## Diff
|
4
4
|
|
5
|
-
-
|
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
|
-
|
9
|
+
- [ ] Diff link is up-to-date.
|
10
|
+
- [ ] Check the release notes: https://gitlab.com/api/v4/projects/4176070/repository/changelog?version=<NEW_VERSION>
|
11
|
+
- [ ] Based on the diff and the release notes, `version.rb` is updated, according to [SemVer](https://semver.org).
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
### Fixes
|
15
|
-
|
16
|
-
- !bbb <Title of the bbb MR>.
|
17
|
-
|
18
|
-
### Doc changes
|
19
|
-
|
20
|
-
- !ccc <Title of the ccc MR>.
|
21
|
-
|
22
|
-
### Other changes (tooling, technical debt)
|
23
|
-
|
24
|
-
- !ddd <Title of the ddd MR>.
|
25
|
-
```
|
26
|
-
|
27
|
-
- Checklist before merging:
|
28
|
-
- [ ] Diff link is up-to-date.
|
29
|
-
- [ ] Based on the diff, `lib/gitlab/styles/version.rb` is updated, according to [SemVer](https://semver.org).
|
30
|
-
- [ ] Release notes are accurate.
|
31
|
-
|
32
|
-
- Checklist after merging:
|
33
|
-
- [ ] [Update the release notes for the newly created tag](docs/release_process.md#how-to).
|
34
|
-
|
35
|
-
/label ~"Engineering Productivity" ~"feature" ~"feature::maintenance" ~"static code analysis"
|
13
|
+
/label ~"type::maintenance" ~"static code analysis"
|
data/.gitlab-ci.yml
CHANGED
data/Dangerfile
ADDED
data/gitlab-styles.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.email = ['gitlab_rubygems@gitlab.com']
|
13
13
|
|
14
14
|
spec.summary = 'GitLab style guides and shared style configs.'
|
15
|
-
spec.homepage = 'https://gitlab.com/gitlab-org/gitlab-styles'
|
15
|
+
spec.homepage = 'https://gitlab.com/gitlab-org/ruby/gems/gitlab-styles'
|
16
16
|
spec.license = 'MIT'
|
17
17
|
|
18
18
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_dependency 'rubocop-rspec', '~> 1.44'
|
31
31
|
|
32
32
|
spec.add_development_dependency 'bundler', '~> 2.1'
|
33
|
+
spec.add_development_dependency 'gitlab-dangerfiles', '~> 2.11.0'
|
33
34
|
spec.add_development_dependency 'rake', '~> 10.0'
|
34
35
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
35
36
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Gitlab
|
4
|
+
module Styles
|
5
|
+
module Common
|
6
|
+
module BannedConstants
|
7
|
+
attr_reader :replacements, :message_template, :autocorrect
|
8
|
+
|
9
|
+
def on_const(node)
|
10
|
+
constant = node.source.delete_prefix('::')
|
11
|
+
|
12
|
+
return unless replacements.key?(constant)
|
13
|
+
|
14
|
+
replacement = replacements.fetch(constant)
|
15
|
+
message = format(message_template, { replacement: replacement })
|
16
|
+
|
17
|
+
add_offense(node, message: message) do |corrector|
|
18
|
+
next unless autocorrect
|
19
|
+
|
20
|
+
replacement = "::#{replacement}" if node.source.start_with?("::")
|
21
|
+
|
22
|
+
corrector.replace(node, replacement)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -10,10 +10,11 @@ module Gitlab
|
|
10
10
|
class ActiveRecordDependent < RuboCop::Cop::Cop
|
11
11
|
include ModelHelpers
|
12
12
|
|
13
|
-
MSG = 'Do not use `dependent
|
14
|
-
'use foreign keys with cascading deletes instead'
|
13
|
+
MSG = 'Do not use `dependent:` to remove associated data, ' \
|
14
|
+
'use foreign keys with cascading deletes instead.'
|
15
15
|
|
16
16
|
METHOD_NAMES = [:has_many, :has_one, :belongs_to].freeze
|
17
|
+
ALLOWED_OPTIONS = [:restrict_with_error].freeze
|
17
18
|
|
18
19
|
def on_send(node)
|
19
20
|
return unless in_model?(node)
|
@@ -21,6 +22,9 @@ module Gitlab
|
|
21
22
|
|
22
23
|
node.children.last.each_node(:pair) do |pair|
|
23
24
|
key_name = pair.children[0].children[0]
|
25
|
+
option_name = pair.children[1].children[0]
|
26
|
+
|
27
|
+
break if ALLOWED_OPTIONS.include?(option_name)
|
24
28
|
|
25
29
|
add_offense(pair) if key_name == :dependent
|
26
30
|
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Gitlab
|
4
|
+
module Styles
|
5
|
+
module Rubocop
|
6
|
+
module Cop
|
7
|
+
# Checks for return inside blocks.
|
8
|
+
# For more information see: https://gitlab.com/gitlab-org/gitlab-foss/issues/42889
|
9
|
+
#
|
10
|
+
# @example
|
11
|
+
# # bad
|
12
|
+
# call do
|
13
|
+
# return if something
|
14
|
+
#
|
15
|
+
# do_something_else
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# # good
|
19
|
+
# call do
|
20
|
+
# break if something
|
21
|
+
#
|
22
|
+
# do_something_else
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
class AvoidReturnFromBlocks < RuboCop::Cop::Cop
|
26
|
+
MSG = 'Do not return from a block, use next or break instead.'
|
27
|
+
DEF_METHODS = %i[define_method lambda].freeze
|
28
|
+
WHITELISTED_METHODS = %i[each each_filename times loop].freeze
|
29
|
+
|
30
|
+
def on_block(node)
|
31
|
+
block_body = node.body
|
32
|
+
|
33
|
+
return unless block_body
|
34
|
+
return unless top_block?(node)
|
35
|
+
|
36
|
+
block_body.each_node(:return) do |return_node|
|
37
|
+
next if parent_blocks(node, return_node).all? { |block| whitelisted?(block) }
|
38
|
+
|
39
|
+
add_offense(return_node)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def top_block?(node)
|
46
|
+
current_node = node
|
47
|
+
top_block = nil
|
48
|
+
|
49
|
+
while current_node && current_node.type != :def
|
50
|
+
top_block = current_node if current_node.block_type?
|
51
|
+
current_node = current_node.parent
|
52
|
+
end
|
53
|
+
|
54
|
+
top_block == node
|
55
|
+
end
|
56
|
+
|
57
|
+
def parent_blocks(node, current_node)
|
58
|
+
blocks = []
|
59
|
+
|
60
|
+
until node == current_node || def?(current_node)
|
61
|
+
blocks << current_node if current_node.block_type?
|
62
|
+
current_node = current_node.parent
|
63
|
+
end
|
64
|
+
|
65
|
+
blocks << node if node == current_node && !def?(node)
|
66
|
+
blocks
|
67
|
+
end
|
68
|
+
|
69
|
+
def def?(node)
|
70
|
+
node.def_type? || node.defs_type? ||
|
71
|
+
(node.block_type? && DEF_METHODS.include?(node.method_name))
|
72
|
+
end
|
73
|
+
|
74
|
+
def whitelisted?(block_node)
|
75
|
+
WHITELISTED_METHODS.include?(block_node.method_name)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -76,52 +76,6 @@ module Gitlab
|
|
76
76
|
|
77
77
|
add_offense(node, location: :selector)
|
78
78
|
end
|
79
|
-
|
80
|
-
# We can not auto correct code like this, as it requires manual
|
81
|
-
# refactoring. Instead, we'll just allow the surrounding scope.
|
82
|
-
#
|
83
|
-
# Despite this method's presence, you should not use it. This method
|
84
|
-
# exists to make it possible to allow large chunks of offenses we
|
85
|
-
# can't fix in the short term. If you are writing new code, follow the
|
86
|
-
# code reuse guidelines, instead of allowing any new offenses.
|
87
|
-
def autocorrect(node)
|
88
|
-
scope = surrounding_scope_of(node)
|
89
|
-
indent = indentation_of(scope)
|
90
|
-
|
91
|
-
lambda do |corrector|
|
92
|
-
# This prevents us from inserting the same enable/disable comment
|
93
|
-
# for a method or block that has multiple offenses.
|
94
|
-
next if allowed_scopes.include?(scope)
|
95
|
-
|
96
|
-
corrector.insert_before(
|
97
|
-
scope.source_range,
|
98
|
-
"# rubocop: disable #{cop_name}\n#{indent}"
|
99
|
-
)
|
100
|
-
|
101
|
-
corrector.insert_after(
|
102
|
-
scope.source_range,
|
103
|
-
"\n#{indent}# rubocop: enable #{cop_name}"
|
104
|
-
)
|
105
|
-
|
106
|
-
allowed_scopes << scope
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
def indentation_of(node)
|
111
|
-
' ' * node.loc.expression.source_line[/\A */].length
|
112
|
-
end
|
113
|
-
|
114
|
-
def surrounding_scope_of(node)
|
115
|
-
%i[def defs block begin].each do |type|
|
116
|
-
if (found = node.each_ancestor(type).first)
|
117
|
-
return found
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
def allowed_scopes
|
123
|
-
@allowed_scopes ||= Set.new
|
124
|
-
end
|
125
79
|
end
|
126
80
|
end
|
127
81
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../../common/banned_constants'
|
4
|
+
|
5
|
+
module Gitlab
|
6
|
+
module Styles
|
7
|
+
module Rubocop
|
8
|
+
module Cop
|
9
|
+
module Fips
|
10
|
+
class MD5 < RuboCop::Cop::Base
|
11
|
+
include Gitlab::Styles::Common::BannedConstants
|
12
|
+
|
13
|
+
MESSAGE_TEMPLATE = 'MD5 is not FIPS-compliant. Use %{replacement} instead.'
|
14
|
+
|
15
|
+
REPLACEMENTS = {
|
16
|
+
'OpenSSL::Digest::MD5' => 'OpenSSL::Digest::SHA256',
|
17
|
+
'Digest::MD5' => 'OpenSSL::Digest::SHA256'
|
18
|
+
}.freeze
|
19
|
+
|
20
|
+
def initialize(config = nil, options = nil)
|
21
|
+
@message_template = MESSAGE_TEMPLATE
|
22
|
+
@replacements = REPLACEMENTS
|
23
|
+
@autocorrect = false
|
24
|
+
super(config, options)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../../common/banned_constants'
|
4
|
+
|
5
|
+
module Gitlab
|
6
|
+
module Styles
|
7
|
+
module Rubocop
|
8
|
+
module Cop
|
9
|
+
module Fips
|
10
|
+
class OpenSSL < RuboCop::Cop::Base
|
11
|
+
extend RuboCop::Cop::AutoCorrector
|
12
|
+
include Gitlab::Styles::Common::BannedConstants
|
13
|
+
|
14
|
+
MESSAGE_TEMPLATE = 'Usage of this class is not FIPS-compliant. Use %{replacement} instead.'
|
15
|
+
|
16
|
+
REPLACEMENTS = {
|
17
|
+
'Digest::SHA1' => 'OpenSSL::Digest::SHA1',
|
18
|
+
'Digest::SHA2' => 'OpenSSL::Digest::SHA2',
|
19
|
+
'Digest::SHA256' => 'OpenSSL::Digest::SHA256',
|
20
|
+
'Digest::SHA384' => 'OpenSSL::Digest::SHA384',
|
21
|
+
'Digest::SHA512' => 'OpenSSL::Digest::SHA512'
|
22
|
+
}.freeze
|
23
|
+
|
24
|
+
def initialize(config = nil, options = nil)
|
25
|
+
@message_template = MESSAGE_TEMPLATE
|
26
|
+
@replacements = REPLACEMENTS
|
27
|
+
@autocorrect = true
|
28
|
+
super(config, options)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../../common/banned_constants'
|
4
|
+
|
5
|
+
module Gitlab
|
6
|
+
module Styles
|
7
|
+
module Rubocop
|
8
|
+
module Cop
|
9
|
+
module Fips
|
10
|
+
class SHA1 < RuboCop::Cop::Base
|
11
|
+
include Gitlab::Styles::Common::BannedConstants
|
12
|
+
|
13
|
+
MESSAGE_TEMPLATE = 'SHA1 is likely to become non-compliant in the near future. Use %{replacement} instead.'
|
14
|
+
|
15
|
+
REPLACEMENTS = {
|
16
|
+
'OpenSSL::Digest::SHA1' => 'OpenSSL::Digest::SHA256',
|
17
|
+
'Digest::SHA1' => 'OpenSSL::Digest::SHA256'
|
18
|
+
}.freeze
|
19
|
+
|
20
|
+
def initialize(config = nil, options = nil)
|
21
|
+
@message_template = MESSAGE_TEMPLATE
|
22
|
+
@replacements = REPLACEMENTS
|
23
|
+
@autocorrect = false
|
24
|
+
super(config, options)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Gitlab
|
4
|
+
module Styles
|
5
|
+
module Rubocop
|
6
|
+
module Cop
|
7
|
+
module Performance
|
8
|
+
# This cop flags inefficient uses of rubyzip's Zip::File, since when instantiated
|
9
|
+
# it reads the file's Central Directory into memory entirely. For zips with many
|
10
|
+
# files and directories, this can be very expensive even when the archive's size
|
11
|
+
# in bytes is small.
|
12
|
+
#
|
13
|
+
# See also:
|
14
|
+
# - https://github.com/rubyzip/rubyzip/issues/506
|
15
|
+
# - https://github.com/rubyzip/rubyzip#notes-on-zipinputstream
|
16
|
+
class Rubyzip < RuboCop::Cop::Cop
|
17
|
+
MSG = 'Be careful when opening or iterating zip files via Zip::File. ' \
|
18
|
+
'Zip archives may contain many entries, and their file index is ' \
|
19
|
+
'read into memory upon construction, which can lead to ' \
|
20
|
+
'high memory use and poor performance. ' \
|
21
|
+
'Consider iterating archive entries via Zip::InputStream instead.'
|
22
|
+
|
23
|
+
def_node_matcher :reads_central_directory?, <<-PATTERN
|
24
|
+
(send
|
25
|
+
(const
|
26
|
+
(const {nil? (cbase)} :Zip) :File) {:new :open :foreach} ...)
|
27
|
+
PATTERN
|
28
|
+
|
29
|
+
def on_send(node)
|
30
|
+
return unless reads_central_directory?(node)
|
31
|
+
|
32
|
+
add_offense(node)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/rubocop-default.yml
CHANGED
data/rubocop-fips.yml
ADDED
data/rubocop-performance.yml
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
require:
|
3
3
|
- rubocop-performance
|
4
|
+
- ./lib/gitlab/styles/rubocop
|
4
5
|
|
5
6
|
# Used to identify usages of ancestors.include? and change them to use ⇐ instead.
|
6
7
|
# https://docs.rubocop.org/rubocop-performance/1.8/cops_performance.html#performanceancestorsinclude
|
@@ -112,3 +113,9 @@ Performance/Sum:
|
|
112
113
|
# Checks for `.times.map` calls.
|
113
114
|
Performance/TimesMap:
|
114
115
|
Enabled: true
|
116
|
+
|
117
|
+
# Flags potentially expensive operations on ZIP archives.
|
118
|
+
Performance/Rubyzip:
|
119
|
+
Enabled: true
|
120
|
+
Exclude:
|
121
|
+
- 'spec/**/*'
|
data/rubocop-rspec.yml
CHANGED
@@ -95,8 +95,9 @@ RSpec/ImplicitExpect:
|
|
95
95
|
EnforcedStyle: is_expected
|
96
96
|
|
97
97
|
# Checks for the usage of instance variables.
|
98
|
+
# https://docs.gitlab.com/ee/development/testing_guide/best_practices.html#subject-and-let-variables
|
98
99
|
RSpec/InstanceVariable:
|
99
|
-
Enabled:
|
100
|
+
Enabled: true
|
100
101
|
|
101
102
|
# Checks for `subject` definitions that come after `let` definitions.
|
102
103
|
RSpec/LeadingSubject:
|
@@ -157,4 +158,4 @@ RSpec/SubjectStub:
|
|
157
158
|
|
158
159
|
# Prefer using verifying doubles over normal doubles.
|
159
160
|
RSpec/VerifiedDoubles:
|
160
|
-
Enabled:
|
161
|
+
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:
|
4
|
+
version: 7.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: 2022-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -114,6 +114,20 @@ dependencies:
|
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '2.1'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: gitlab-dangerfiles
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 2.11.0
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: 2.11.0
|
117
131
|
- !ruby/object:Gem::Dependency
|
118
132
|
name: rake
|
119
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -152,12 +166,14 @@ files:
|
|
152
166
|
- ".editorconfig"
|
153
167
|
- ".gitignore"
|
154
168
|
- ".gitlab-ci.yml"
|
169
|
+
- ".gitlab/changelog_config.yml"
|
155
170
|
- ".gitlab/merge_request_templates/New Static Analysis Check.md"
|
156
171
|
- ".gitlab/merge_request_templates/Release.md"
|
157
172
|
- ".rspec"
|
158
173
|
- ".rubocop.yml"
|
159
174
|
- CODE_OF_CONDUCT.md
|
160
175
|
- CONTRIBUTING.md
|
176
|
+
- Dangerfile
|
161
177
|
- Gemfile
|
162
178
|
- LICENSE.md
|
163
179
|
- README.md
|
@@ -166,17 +182,23 @@ files:
|
|
166
182
|
- bin/setup
|
167
183
|
- gitlab-styles.gemspec
|
168
184
|
- lib/gitlab/styles.rb
|
185
|
+
- lib/gitlab/styles/common/banned_constants.rb
|
169
186
|
- lib/gitlab/styles/rubocop.rb
|
170
187
|
- lib/gitlab/styles/rubocop/cop/active_record_dependent.rb
|
171
188
|
- lib/gitlab/styles/rubocop/cop/active_record_serialize.rb
|
189
|
+
- lib/gitlab/styles/rubocop/cop/avoid_return_from_blocks.rb
|
172
190
|
- lib/gitlab/styles/rubocop/cop/code_reuse/active_record.rb
|
173
191
|
- lib/gitlab/styles/rubocop/cop/custom_error_class.rb
|
192
|
+
- lib/gitlab/styles/rubocop/cop/fips/md5.rb
|
193
|
+
- lib/gitlab/styles/rubocop/cop/fips/open_ssl.rb
|
194
|
+
- lib/gitlab/styles/rubocop/cop/fips/sha1.rb
|
174
195
|
- lib/gitlab/styles/rubocop/cop/gem_fetcher.rb
|
175
196
|
- lib/gitlab/styles/rubocop/cop/in_batches.rb
|
176
197
|
- lib/gitlab/styles/rubocop/cop/internal_affairs/deprecate_cop_helper.rb
|
177
198
|
- lib/gitlab/styles/rubocop/cop/line_break_after_guard_clauses.rb
|
178
199
|
- lib/gitlab/styles/rubocop/cop/line_break_around_conditional_block.rb
|
179
200
|
- lib/gitlab/styles/rubocop/cop/migration/update_large_table.rb
|
201
|
+
- lib/gitlab/styles/rubocop/cop/performance/rubyzip.rb
|
180
202
|
- lib/gitlab/styles/rubocop/cop/polymorphic_associations.rb
|
181
203
|
- lib/gitlab/styles/rubocop/cop/rails/include_url_helper.rb
|
182
204
|
- lib/gitlab/styles/rubocop/cop/redirect_with_status.rb
|
@@ -199,6 +221,7 @@ files:
|
|
199
221
|
- rubocop-bundler.yml
|
200
222
|
- rubocop-code_reuse.yml
|
201
223
|
- rubocop-default.yml
|
224
|
+
- rubocop-fips.yml
|
202
225
|
- rubocop-gemspec.yml
|
203
226
|
- rubocop-graphql.yml
|
204
227
|
- rubocop-layout.yml
|
@@ -211,7 +234,7 @@ files:
|
|
211
234
|
- rubocop-rspec.yml
|
212
235
|
- rubocop-security.yml
|
213
236
|
- rubocop-style.yml
|
214
|
-
homepage: https://gitlab.com/gitlab-org/gitlab-styles
|
237
|
+
homepage: https://gitlab.com/gitlab-org/ruby/gems/gitlab-styles
|
215
238
|
licenses:
|
216
239
|
- MIT
|
217
240
|
metadata: {}
|