dependabot-composer 0.130.0 → 0.131.1
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.
|
@@ -7,21 +7,29 @@ module Dependabot
|
|
|
7
7
|
module Helpers
|
|
8
8
|
# From composers json-schema: https://getcomposer.org/schema.json
|
|
9
9
|
COMPOSER_V2_NAME_REGEX = %r{^[a-z0-9]([_.-]?[a-z0-9]+)*/[a-z0-9](([_.]?|-{0,2})[a-z0-9]+)*$}.freeze
|
|
10
|
+
# From https://github.com/composer/composer/blob/b7d770659b4e3ef21423bd67ade935572913a4c1/src/Composer/Repository/PlatformRepository.php#L33
|
|
11
|
+
PLATFORM_PACKAGE_REGEX = /
|
|
12
|
+
^(?:php(?:-64bit|-ipv6|-zts|-debug)?|hhvm|(?:ext|lib)-[a-z0-9](?:[_.-]?[a-z0-9]+)*
|
|
13
|
+
|composer-(?:plugin|runtime)-api)$
|
|
14
|
+
/x.freeze
|
|
10
15
|
|
|
11
16
|
def self.composer_version(composer_json, parsed_lockfile = nil)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
if parsed_lockfile && parsed_lockfile["plugin-api-version"]
|
|
18
|
+
version = Composer::Version.new(parsed_lockfile["plugin-api-version"])
|
|
19
|
+
return version.canonical_segments.first == 1 ? "v1" : "v2"
|
|
20
|
+
else
|
|
21
|
+
return "v1" if composer_json["name"] && composer_json["name"] !~ COMPOSER_V2_NAME_REGEX
|
|
22
|
+
return "v1" if invalid_v2_requirement?(composer_json)
|
|
23
|
+
end
|
|
15
24
|
|
|
16
|
-
|
|
17
|
-
version.canonical_segments.first == 1 ? "v1" : "v2"
|
|
25
|
+
"v2"
|
|
18
26
|
end
|
|
19
27
|
|
|
20
28
|
def self.invalid_v2_requirement?(composer_json)
|
|
21
29
|
return false unless composer_json.key?("require")
|
|
22
30
|
|
|
23
31
|
composer_json["require"].keys.any? do |key|
|
|
24
|
-
key
|
|
32
|
+
key !~ PLATFORM_PACKAGE_REGEX && key !~ COMPOSER_V2_NAME_REGEX
|
|
25
33
|
end
|
|
26
34
|
end
|
|
27
35
|
private_class_method :invalid_v2_requirement?
|
|
@@ -44,9 +44,9 @@ module Dependabot
|
|
|
44
44
|
|
|
45
45
|
if req_string.start_with?("*", "x") then ">= 0"
|
|
46
46
|
elsif req_string.include?("*") then convert_wildcard_req(req_string)
|
|
47
|
-
elsif req_string.include?(".x") then convert_wildcard_req(req_string)
|
|
48
|
-
elsif req_string.match?(/^~[^>]/) then convert_tilde_req(req_string)
|
|
49
47
|
elsif req_string.start_with?("^") then convert_caret_req(req_string)
|
|
48
|
+
elsif req_string.match?(/^~[^>]/) then convert_tilde_req(req_string)
|
|
49
|
+
elsif req_string.include?(".x") then convert_wildcard_req(req_string)
|
|
50
50
|
elsif req_string.match?(/\s-\s/) then convert_hyphen_req(req_string)
|
|
51
51
|
else req_string
|
|
52
52
|
end
|
|
@@ -68,7 +68,7 @@ module Dependabot
|
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
def convert_caret_req(req_string)
|
|
71
|
-
version = req_string.gsub(/^\^/, "")
|
|
71
|
+
version = req_string.gsub(/^\^/, "").gsub("x-dev", "0")
|
|
72
72
|
parts = version.split(".")
|
|
73
73
|
first_non_zero = parts.find { |d| d != "0" }
|
|
74
74
|
first_non_zero_index =
|
|
@@ -159,7 +159,7 @@ module Dependabot
|
|
|
159
159
|
json = JSON.parse(content)
|
|
160
160
|
|
|
161
161
|
composer_platform_extensions.each do |extension, requirements|
|
|
162
|
-
|
|
162
|
+
next unless version_for_reqs(requirements)
|
|
163
163
|
|
|
164
164
|
json["config"] ||= {}
|
|
165
165
|
json["config"]["platform"] ||= {}
|
|
@@ -254,8 +254,7 @@ module Dependabot
|
|
|
254
254
|
error.message.match(/Failed to clone (?<url>.*?) via/).
|
|
255
255
|
named_captures.fetch("url")
|
|
256
256
|
raise Dependabot::GitDependenciesNotReachable, dependency_url
|
|
257
|
-
elsif
|
|
258
|
-
error.message.include?("does not allow connections to http://")
|
|
257
|
+
elsif unresolvable_error?(error)
|
|
259
258
|
raise Dependabot::DependencyFileNotResolvable, sanitized_message
|
|
260
259
|
elsif error.message.match?(MISSING_EXPLICIT_PLATFORM_REQ_REGEX)
|
|
261
260
|
# These errors occur when platform requirements declared explicitly
|
|
@@ -346,6 +345,13 @@ module Dependabot
|
|
|
346
345
|
# rubocop:enable Metrics/CyclomaticComplexity
|
|
347
346
|
# rubocop:enable Metrics/MethodLength
|
|
348
347
|
|
|
348
|
+
def unresolvable_error?(error)
|
|
349
|
+
error.message.start_with?("Could not parse version") ||
|
|
350
|
+
error.message.include?("does not allow connections to http://") ||
|
|
351
|
+
error.message.match?(/The `url` supplied for the path .* does not exist/) ||
|
|
352
|
+
error.message.start_with?("Invalid version string")
|
|
353
|
+
end
|
|
354
|
+
|
|
349
355
|
def library?
|
|
350
356
|
parsed_composer_file["type"] == "library"
|
|
351
357
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dependabot-composer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.131.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dependabot
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-02-05 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.
|
|
19
|
+
version: 0.131.1
|
|
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.
|
|
26
|
+
version: 0.131.1
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: byebug
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,14 +100,14 @@ dependencies:
|
|
|
100
100
|
requirements:
|
|
101
101
|
- - "~>"
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: 1.
|
|
103
|
+
version: 1.9.0
|
|
104
104
|
type: :development
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: 1.
|
|
110
|
+
version: 1.9.0
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
112
|
name: simplecov
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -128,14 +128,14 @@ dependencies:
|
|
|
128
128
|
requirements:
|
|
129
129
|
- - "~>"
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: 0.
|
|
131
|
+
version: 0.9.1
|
|
132
132
|
type: :development
|
|
133
133
|
prerelease: false
|
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
136
|
- - "~>"
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: 0.
|
|
138
|
+
version: 0.9.1
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
140
|
name: vcr
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -230,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
230
230
|
- !ruby/object:Gem::Version
|
|
231
231
|
version: 2.5.0
|
|
232
232
|
requirements: []
|
|
233
|
-
rubygems_version: 3.
|
|
233
|
+
rubygems_version: 3.2.3
|
|
234
234
|
signing_key:
|
|
235
235
|
specification_version: 4
|
|
236
236
|
summary: PHP (Composer) support for dependabot
|