dependabot-composer 0.129.5 → 0.131.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,14 +7,32 @@ 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
- return "v1" if composer_json["name"] && composer_json["name"] !~ COMPOSER_V2_NAME_REGEX
13
- return "v2" unless parsed_lockfile && parsed_lockfile["plugin-api-version"]
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
14
24
 
15
- version = Composer::Version.new(parsed_lockfile["plugin-api-version"])
16
- version.canonical_segments.first == 1 ? "v1" : "v2"
25
+ "v2"
17
26
  end
27
+
28
+ def self.invalid_v2_requirement?(composer_json)
29
+ return false unless composer_json.key?("require")
30
+
31
+ composer_json["require"].keys.any? do |key|
32
+ key !~ PLATFORM_PACKAGE_REGEX && key !~ COMPOSER_V2_NAME_REGEX
33
+ end
34
+ end
35
+ private_class_method :invalid_v2_requirement?
18
36
  end
19
37
  end
20
38
  end
@@ -255,7 +255,8 @@ module Dependabot
255
255
  named_captures.fetch("url")
256
256
  raise Dependabot::GitDependenciesNotReachable, dependency_url
257
257
  elsif error.message.start_with?("Could not parse version") ||
258
- error.message.include?("does not allow connections to http://")
258
+ error.message.include?("does not allow connections to http://") ||
259
+ error.message.match?(/The `url` supplied for the path .* does not exist/)
259
260
  raise Dependabot::DependencyFileNotResolvable, sanitized_message
260
261
  elsif error.message.match?(MISSING_EXPLICIT_PLATFORM_REQ_REGEX)
261
262
  # These errors occur when platform requirements declared explicitly
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.129.5
4
+ version: 0.131.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-07 00:00:00.000000000 Z
11
+ date: 2021-02-04 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.129.5
19
+ version: 0.131.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.129.5
26
+ version: 0.131.0
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.7.0
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.7.0
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.8.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.8.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.1.4
233
+ rubygems_version: 3.2.3
234
234
  signing_key:
235
235
  specification_version: 4
236
236
  summary: PHP (Composer) support for dependabot