Skip to content

Commit a4c5217

Browse files
authored
Merge pull request #12 from aboutsource/feature/ignore_namespace_names
add cli flag to ignore quay.io namespace names
2 parents 81f0dc1 + e169089 commit a4c5217

3 files changed

Lines changed: 16 additions & 6 deletions

File tree

bin/check-container-vulnerabilities.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,18 @@ class CheckContainerVulnerabilities < Sensu::Plugin::Check::CLI
4444
default: '',
4545
proc: proc { |w| w.split(',') }
4646

47+
option :ignore_namespace_names,
48+
description: 'Namespace names to ignore',
49+
short: '-n NAMESPACE_NAME[,NAMESPACE_NAME]',
50+
long: '--ignore-namespace-names NAMESPACE_NAME[,NAMESPACE_NAME]',
51+
default: '',
52+
proc: proc { |w| w.split(',') }
53+
4754
def run
4855
status, message = Quayio::Scanner::Check.new(config[:docker_url],
4956
config[:quayio_token],
50-
config[:whitelist]).run
57+
config[:whitelist],
58+
config[:ignore_namespace_names]).run
5159

5260
if status == :ok
5361
ok message

lib/quayio/scanner/check.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
module Quayio
44
module Scanner
5-
Check = Struct.new(:docker_url, :quayio_token, :whitelist) do
5+
Check = Struct.new(:docker_url, :quayio_token, :whitelist, :ignore_namespace_names) do
66
def run
77
Docker.url = docker_url
88

@@ -27,7 +27,7 @@ def containers
2727

2828
def vulnerable_images
2929
containers
30-
.map { |container| Image.new(container, quayio_token, whitelist) }
30+
.map { |container| Image.new(container, quayio_token, whitelist, ignore_namespace_names) }
3131
.select(&:vulnerable?)
3232
.map(&:name)
3333
end

lib/quayio/scanner/image.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ class Image
55
QUAY_IO_REPO_NAME =
66
%r{quay.io\/(?<org>[\w-]+)\/(?<repo>[\w-]+):(?<tag>[\w.-]+)}.freeze
77

8-
attr_reader :name, :whitelist, :repository
8+
attr_reader :name, :whitelist, :repository, :ignore_namespace_names
99

10-
def initialize(name, quayio_token, whitelist)
10+
def initialize(name, quayio_token, whitelist, ignore_namespace_names)
1111
@name = name
1212
@whitelist = whitelist
13+
@ignore_namespace_names = ignore_namespace_names
1314

1415
@name.match(QUAY_IO_REPO_NAME) do |r|
1516
org, repo, tag = r.captures
@@ -36,7 +37,8 @@ def vulnerabilities_present?
3637
!raw_scan['data']['Layer']['Features'].detect do |f|
3738
f['Vulnerabilities']&.detect do |v|
3839
RELEVANT_SEVERITIES.include?(v['Severity']) && \
39-
!whitelist.include?(v['Name'])
40+
!whitelist.include?(v['Name']) && \
41+
!ignore_namespace_names.include?(v['NamespaceName'])
4042
end
4143
end.nil?
4244
end

0 commit comments

Comments
 (0)