build-labels 0.0.81 → 0.0.82

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trivy-runner.rb +8 -13
  3. data/lib/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 476e27617813a76b8dc23859333d42a05d7be58b318a565e20d6df009dc41b4d
4
- data.tar.gz: e26ea40307746c5b3201fad92fe47a9ca57c489f9ec3b7dbe0aaa88094baa653
3
+ metadata.gz: f07b75a01ca8a9ba33efeab300c5fe83a04cf08548191ce1a80886802e18fdeb
4
+ data.tar.gz: 54a10a7de0eafb37faf74906c181c2ea9cba257e89ed4882688ba25e5794fe6b
5
5
  SHA512:
6
- metadata.gz: 3f3f93bbe70d686fef054fca76c6238d2d2142147d1b0861183a779480fb81971499c177acf7779d03c15909582b98552cf9186e737ae448bf096a76cb64a584
7
- data.tar.gz: a863e23dab5dc2ab15e462943e5cf24b25310f3b096929f02faac1038483e274545a58b49f671d489db896a6d285fb7573950266cb7458db69445cf3a4c45fd4
6
+ metadata.gz: 92aa39e035a072c5dbbfc6fce2fd67e6852dc6d9c94828307ae98bc5e0008d70ee73ebd48f391ade26800c0c926cf9bc66ec73a82bd2a0a8e1f173ece2f3427f
7
+ data.tar.gz: 5c7c36fd8dead4a7e9a1fae8f0edb4ad59e2656d7cbe0cc1487747220d370b28d870da15bd96ad04df71f016a6a532d1d254951754ba1fb7fefbf157f51aa8a9
data/lib/trivy-runner.rb CHANGED
@@ -5,28 +5,23 @@ require 'yaml'
5
5
  require_relative 'version'
6
6
 
7
7
  class TrivyRunner
8
- SEVERITIES = %w[UNKNOWN LOW MEDIUM HIGH CRITICAL].freeze
9
8
  IMAGE_ID = /\Asha256:[0-9a-f]{64}\z/
10
9
 
11
10
  def run(args)
12
11
  file = 'bake.yml'
13
12
  metadata_file = nil
14
- severity = %w[HIGH CRITICAL]
15
13
  parser = OptionParser.new do |options|
16
- options.banner = 'Usage: trivy-runner -f BAKE_FILE --metadata-file FILE [TARGET/GROUP ...]'
14
+ options.banner = 'Usage: trivy-runner -f BAKE_FILE --metadata-file FILE [TARGET/GROUP ...] [-- TRIVY_OPTIONS ...]'
15
+ options.separator 'Options after -- are forwarded to trivy image.'
17
16
  options.on('-f', '--file FILE', 'Bake or Compose file (default: bake.yml)') { file = _1 }
18
17
  options.on('--metadata-file FILE', 'Buildx metadata from the local build') { metadata_file = _1 }
19
18
  options.on('--image-src SOURCE', %w[docker], 'Image source (default: docker)')
20
- options.on('--fail-on SEVERITIES', Array, 'Fail on these severities (default: HIGH,CRITICAL)') do |values|
21
- severity = values.map { _1.strip.upcase }.uniq
22
- if severity.empty? || (severity - SEVERITIES).any?
23
- raise OptionParser::InvalidArgument, values.join(',')
24
- end
25
- end
26
19
  options.on('-v', '--version', 'Print version') { puts BuildLabels::Builder::VERSION; return 0 }
27
20
  options.on('-h', '--help', 'Print help') { puts options; return 0 }
28
21
  end
29
- targets = parser.parse!(args.dup)
22
+ separator = args.index('--') || args.length
23
+ trivy_args = args.drop(separator + 1)
24
+ targets = parser.parse!(args.take(separator))
30
25
  raise OptionParser::MissingArgument, '--metadata-file' unless metadata_file
31
26
  return 0 if targets.empty? && empty_compose?(file)
32
27
 
@@ -37,7 +32,7 @@ class TrivyRunner
37
32
 
38
33
  verify_images(images)
39
34
  images.values.uniq.each do |image_id|
40
- return 1 unless scan(image_id, severity)
35
+ return 1 unless scan(image_id, trivy_args)
41
36
  end
42
37
  verify_images(images)
43
38
  0
@@ -48,7 +43,7 @@ class TrivyRunner
48
43
 
49
44
  private
50
45
 
51
- def scan(image_id, severity)
46
+ def scan(image_id, trivy_args)
52
47
  environment = ENV.keys.grep(/\ATRIVY_/) - %w[TRIVY_IMAGE]
53
48
  cache_dir = ENV.fetch('TRIVY_CACHE_DIR', '/root/.cache/trivy')
54
49
  system('docker', 'run', '--rm', '--pull', 'always',
@@ -56,7 +51,7 @@ class TrivyRunner
56
51
  '--mount', "type=volume,src=trivy-cache,dst=#{cache_dir}",
57
52
  *environment.flat_map { ['--env', _1] }, ENV.fetch('TRIVY_IMAGE', 'aquasec/trivy'),
58
53
  'image', '--cache-dir', cache_dir, '--image-src', 'docker', '--scanners', 'vuln',
59
- '--severity', severity.join(','), '--exit-code', '1', image_id)
54
+ '--exit-code', '1', *trivy_args, image_id)
60
55
  end
61
56
 
62
57
  def empty_compose?(file)
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module BuildLabels
2
2
  class Builder
3
- VERSION = '0.0.81'
3
+ VERSION = '0.0.82'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: build-labels
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.81
4
+ version: 0.0.82
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B