Skip to content

Commit a47556a

Browse files
Update Dependencies and satisfy rubocop
1 parent 01991a1 commit a47556a

7 files changed

Lines changed: 48 additions & 31 deletions

File tree

.rubocop.yml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,28 @@
11
AllCops:
22
TargetRubyVersion: 2.3
33

4+
Lint/RaiseException:
5+
Enabled: true
6+
7+
Lint/StructNewOverride:
8+
Enabled: true
9+
10+
11+
Metrics:
12+
Enabled: false
13+
14+
415
Style/FrozenStringLiteralComment:
516
Enabled: false
617

718
Style/Documentation:
819
Enabled: false
920

10-
Metrics/MethodLength:
11-
Max: 50
21+
Style/HashEachMethods:
22+
Enabled: true
23+
24+
Style/HashTransformKeys:
25+
Enabled: true
1226

13-
Metrics/BlockLength:
14-
Max: 200
27+
Style/HashTransformValues:
28+
Enabled: true

Gemfile.lock

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,23 @@ GEM
1616
multi_json
1717
domain_name (0.5.20190701)
1818
unf (>= 0.0.5, < 1.0.0)
19-
excon (0.92.1)
19+
excon (0.92.3)
2020
http-accept (1.7.0)
2121
http-cookie (1.0.4)
2222
domain_name (~> 0.5)
23-
json (2.6.1)
23+
jaro_winkler (1.5.4)
24+
json (2.6.2)
2425
mime-types (3.4.1)
2526
mime-types-data (~> 3.2015)
2627
mime-types-data (3.2022.0105)
2728
mixlib-cli (1.7.0)
2829
multi_json (1.15.0)
2930
netrc (0.11.0)
3031
parallel (1.22.1)
31-
parser (3.1.1.0)
32+
parser (3.1.2.0)
3233
ast (~> 2.4.1)
3334
rainbow (3.1.1)
34-
rake (10.5.0)
35-
regexp_parser (2.2.1)
35+
rake (13.0.6)
3636
rest-client (2.1.0)
3737
http-accept (>= 1.7.0, < 2.0)
3838
http-cookie (>= 1.0.2, < 2.0)
@@ -48,21 +48,18 @@ GEM
4848
rspec-expectations (3.11.0)
4949
diff-lcs (>= 1.2.0, < 2.0)
5050
rspec-support (~> 3.11.0)
51-
rspec-mocks (3.11.0)
51+
rspec-mocks (3.11.1)
5252
diff-lcs (>= 1.2.0, < 2.0)
5353
rspec-support (~> 3.11.0)
5454
rspec-support (3.11.0)
55-
rubocop (0.93.1)
55+
rubocop (0.81.0)
56+
jaro_winkler (~> 1.5.1)
5657
parallel (~> 1.10)
57-
parser (>= 2.7.1.5)
58+
parser (>= 2.7.0.1)
5859
rainbow (>= 2.2.2, < 4.0)
59-
regexp_parser (>= 1.8)
6060
rexml
61-
rubocop-ast (>= 0.6.0)
6261
ruby-progressbar (~> 1.7)
6362
unicode-display_width (>= 1.4.0, < 2.0)
64-
rubocop-ast (1.16.0)
65-
parser (>= 3.1.1.0)
6663
ruby-progressbar (1.11.0)
6764
sensu-plugin (4.0.0)
6865
json (< 3.0.0)
@@ -78,9 +75,9 @@ PLATFORMS
7875
DEPENDENCIES
7976
bundler (~> 2.1)
8077
quayio-scanner!
81-
rake (~> 10.0)
78+
rake (~> 13.0)
8279
rspec (~> 3.7)
83-
rubocop (~> 0.49)
80+
rubocop (~> 0.49, <= 0.81)
8481

8582
BUNDLED WITH
86-
2.2.23
83+
2.1.4

bin/check-container-vulnerabilities.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
# gem: rest-client
1919
#
2020
# USAGE:
21-
# ./check-container-vulnerabilities.rb -d <docker-url> -t <quay-io-oauth-token>
21+
# ./check-container-vulnerabilities.rb \
22+
# -d <docker-url> -t <quay-io-oauth-token>
2223
#
2324

2425
require 'sensu-plugin/check/cli'

lib/quayio/scanner/check.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ def run
99
if vulnerable_images.empty?
1010
[:ok, "#{containers.size} Containers are ok"]
1111
else
12-
[:critical, "The images are insecure: #{vulnerable_images.join(', ')}"]
12+
[
13+
:critical,
14+
"The images are insecure: #{vulnerable_images.join(', ')}"
15+
]
1316
end
1417
end
1518

lib/quayio/scanner/image.rb

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ module Quayio
22
module Scanner
33
class Image
44
RELEVANT_SEVERITIES = %w[High Critical].freeze
5-
QUAY_IO_REPO_NAME = %r{quay.io\/(?<org>[\w-]+)\/(?<repo>[\w-]+):(?<tag>[\w.-]+)}.freeze
5+
QUAY_IO_REPO_NAME = \
6+
%r{quay.io\/(?<org>[\w-]+)\/(?<repo>[\w-]+):(?<tag>[\w.-]+)}.freeze
67

78
attr_reader :name, :whitelist, :repository
89

@@ -24,19 +25,19 @@ def vulnerable?
2425

2526
def quayio?
2627
# safe guard, do not trust QUAY_IO_REPO_NAME regex match
27-
!!name.match(%r{^quay.io\/})
28+
name.match?(%r{^quay.io\/})
2829
end
2930

3031
def scanned?
3132
raw_scan['status'] == 'scanned'
3233
end
3334

3435
def vulnerabilities_present?
35-
!!raw_scan['data']['Layer']['Features'].detect do |f|
36+
!raw_scan['data']['Layer']['Features'].detect do |f|
3637
f['Vulnerabilities']&.detect do |v|
37-
RELEVANT_SEVERITIES.include?(v['Severity']) && !whitelist.include?(v['Name'])
38+
RELEVANT_SEVERITIES.include?(v['Severity']) && !whitelist.include?(v['Name']) # rubocop:disable Layout/LineLength
3839
end
39-
end
40+
end.nil?
4041
end
4142

4243
def raw_scan

lib/quayio/scanner/repository.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def manifest_ref
1818

1919
def fetch_manifest_ref
2020
result = api_call("/tag/?specificTag=#{tag}&onlyActiveTags=1")
21-
(result['tags'].first)['manifest_digest']
21+
result['tags'].first['manifest_digest']
2222
end
2323

2424
def api_call(uri)

quayio-scanner.gemspec

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ Gem::Specification.new do |spec|
88
spec.authors = ['Benjamin Meichsner']
99
spec.email = ['benjamin.meichsner@aboutsource.net']
1010

11-
spec.summary = 'Scan quay.io for vulnerabilties in running docker containers.'
11+
spec.summary = 'Scan quay.io for vulnerabilities in '\
12+
'running docker containers.'
1213
spec.homepage = 'https://github.com/aboutsource/quayio-scanner'
1314
spec.license = 'MIT'
1415

@@ -17,14 +18,14 @@ Gem::Specification.new do |spec|
1718
spec.files = `git ls-files -z`.split("\x0").reject do |f|
1819
f.match(%r{^(test|spec|features)/})
1920
end
20-
spec.executables = Dir.glob('bin/**/*.rb').map { |file| File.basename(file) }
21+
spec.executables = Dir.glob('bin/**/*.rb').map { |f| File.basename(f) }
2122
spec.require_paths = ['lib']
2223

2324
spec.add_dependency 'docker-api', '~> 1.33'
2425
spec.add_dependency 'rest-client', '~> 2.1'
2526
spec.add_dependency 'sensu-plugin', '~> 4.0'
2627
spec.add_development_dependency 'bundler', '~> 2.1'
27-
spec.add_development_dependency 'rake', '~> 10.0'
28+
spec.add_development_dependency 'rake', '~> 13.0'
2829
spec.add_development_dependency 'rspec', '~> 3.7'
29-
spec.add_development_dependency 'rubocop', '~> 0.49'
30+
spec.add_development_dependency 'rubocop', '~> 0.49', '<= 0.81'
3031
end

0 commit comments

Comments
 (0)