dependabot-docker 0.171.5 → 0.172.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ce7db7667cbf10643e61c239c6244fb5526499e62604a991f3e930bed53ec01
4
- data.tar.gz: 7603b159aae92c190fed876ca01c8eac94ebee1e4662ab67ab992b9a460c4825
3
+ metadata.gz: c51bf8c18d49414617bd327745b0a1869e8383cf5f3500059fa389e63361e833
4
+ data.tar.gz: 7bb677735c2ff6dd6daaf7f245d3af56f02121127f13b38b7f44473b171af7b0
5
5
  SHA512:
6
- metadata.gz: f141f1a11d982a369a205e3e71c3608d66a499fa1afb6c4eb4a328ae299e45ad8125774364146e3867b0d49567af6706dfa24b9428b35fb59aa7e41bfee5a5c5
7
- data.tar.gz: a49a007964024f23287c5b59a67b0ed3f2245892e70896b3e5b575b389130a3ed50ad268f128aa339bd1c7fa9e8fb33d4801217b313649e5e8af09b18a77861a
6
+ metadata.gz: 5e4f9376f2bf4bd99e466c51fdab7e951f84a82cd6ef7164e0c655d763a31338af6981a8a2911df2805cf42d152ea5f381bd546d10383c36f22bb07af277dfd3
7
+ data.tar.gz: 9fc9185746655203d1fa3a828aa873bfc2352cbe04b0670d115a8c72ac5504bd34d6c64713c284b57a11f371272115d1305461e4eb3bcd11b1355741a73a366c
@@ -16,15 +16,16 @@ module Dependabot
16
16
  # Details of Docker regular expressions is at
17
17
  # https://github.com/docker/distribution/blob/master/reference/regexp.go
18
18
  DOMAIN_COMPONENT =
19
- /(?:[[:alnum:]]|[[:alnum:]][[[:alnum:]]-]*[[:alnum:]])/.freeze
19
+ /[[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]]/.freeze
20
20
  DOMAIN = /(?:#{DOMAIN_COMPONENT}(?:\.#{DOMAIN_COMPONENT})+)/.freeze
21
21
  REGISTRY = /(?<registry>#{DOMAIN}(?::\d+)?)/.freeze
22
22
 
23
- NAME_COMPONENT = /(?:[a-z\d]+(?:(?:[._]|__|[-]*)[a-z\d]+)*)/.freeze
23
+ NAME_COMPONENT = /[a-z\d]+(?:(?:[._]|__|[-]*)[a-z\d]+)*/.freeze
24
24
  IMAGE = %r{(?<image>#{NAME_COMPONENT}(?:/#{NAME_COMPONENT})*)}.freeze
25
25
 
26
+ ARG = /ARG/i.freeze
26
27
  FROM = /FROM/i.freeze
27
- PLATFORM = /--platform\=(?<platform>\S+)/.freeze
28
+ PLATFORM = /--platform=(?<platform>\S+)/.freeze
28
29
  TAG = /:(?<tag>[\w][\w.-]{0,127})/.freeze
29
30
  DIGEST = /@(?<digest>[^\s]+)/.freeze
30
31
  NAME = /\s+AS\s+(?<name>[\w-]+)/.freeze
@@ -38,7 +39,14 @@ module Dependabot
38
39
  dependency_set = DependencySet.new
39
40
 
40
41
  dockerfiles.each do |dockerfile|
42
+ args = {}
41
43
  dockerfile.content.each_line do |line|
44
+ if ARG.match(line)
45
+ key_value = line.delete_prefix("ARG ").split("=")
46
+ args[key_value[0]] = key_value[1].delete_suffix("\n")
47
+ next
48
+ end
49
+ line = replace_args(line, args)
42
50
  next unless FROM_LINE.match?(line)
43
51
 
44
52
  parsed_from_line = FROM_LINE.match(line).named_captures
@@ -66,6 +74,13 @@ module Dependabot
66
74
 
67
75
  private
68
76
 
77
+ def replace_args(line, args)
78
+ line.gsub(/\${?\w+}?/) do |s|
79
+ escaped = s.delete_prefix("$").delete_prefix("{").delete_suffix("}")
80
+ args[escaped]
81
+ end
82
+ end
83
+
69
84
  def dockerfiles
70
85
  # The Docker file fetcher only fetches Dockerfiles, so no need to
71
86
  # filter here
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-docker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.171.5
4
+ version: 0.172.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-07 00:00:00.000000000 Z
11
+ date: 2022-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dependabot-common
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.171.5
19
+ version: 0.172.0
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: 0.171.5
26
+ version: 0.172.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: debug
29
29
  requirement: !ruby/object:Gem::Requirement