dependabot-nuget 0.117.9 → 0.118.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dependabot/nuget/file_fetcher.rb +4 -0
- data/lib/dependabot/nuget/file_parser/project_file_parser.rb +1 -0
- data/lib/dependabot/nuget/file_parser/property_value_finder.rb +29 -0
- data/lib/dependabot/nuget/file_updater/project_file_declaration_finder.rb +2 -0
- data/lib/dependabot/nuget/update_checker.rb +3 -1
- data/lib/dependabot/nuget/update_checker/property_updater.rb +4 -1
- data/lib/dependabot/nuget/update_checker/version_finder.rb +12 -6
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a692c92a9c2d8df04bde9b863881ce5a95549f285f3e81e0ad6d2f318930040d
|
4
|
+
data.tar.gz: 6c1e206ee2ae71c4bea1f48c40873ebb0c6efe8bd37d83e85ebca6a610e7d5ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b647a82cab4e7ed63c58a00ba9dfb85bfb93982f9869a57e0058fcbfad9b818d9ddd7f3ca95af68cb6a61963f58ec193bbd3b2aab3a4a2abc59f940b8d9aa3b4
|
7
|
+
data.tar.gz: a901e78cbac97b341f7250f67df666c2d7d415c0ba8347d11bed634709b4aa4301e8dbe848b53cf3d58cd51a889a188d7da16b6c2eedd543d62dae27bf0ea666
|
@@ -117,6 +117,8 @@ module Dependabot
|
|
117
117
|
possible_paths += [
|
118
118
|
"Directory.Build.props",
|
119
119
|
"Directory.build.props",
|
120
|
+
"Directory.Packages.props",
|
121
|
+
"Directory.packages.props",
|
120
122
|
"Directory.Build.targets",
|
121
123
|
"Directory.build.targets"
|
122
124
|
]
|
@@ -137,6 +139,8 @@ module Dependabot
|
|
137
139
|
[
|
138
140
|
Pathname.new(base + "/Directory.Build.props").cleanpath.to_path,
|
139
141
|
Pathname.new(base + "/Directory.build.props").cleanpath.to_path,
|
142
|
+
Pathname.new(base + "/Directory.Packages.props").cleanpath.to_path,
|
143
|
+
Pathname.new(base + "/Directory.packages.props").cleanpath.to_path,
|
140
144
|
Pathname.new(base + "/Directory.Build.targets").cleanpath.to_path,
|
141
145
|
Pathname.new(base + "/Directory.build.targets").cleanpath.to_path
|
142
146
|
]
|
@@ -37,6 +37,12 @@ module Dependabot
|
|
37
37
|
callsite_file: callsite_file
|
38
38
|
)
|
39
39
|
|
40
|
+
node_details ||=
|
41
|
+
find_property_in_directory_build_packages(
|
42
|
+
property: property_name,
|
43
|
+
callsite_file: callsite_file
|
44
|
+
)
|
45
|
+
|
40
46
|
node_details ||=
|
41
47
|
find_property_in_packages_props(property: property_name)
|
42
48
|
|
@@ -112,6 +118,13 @@ module Dependabot
|
|
112
118
|
deep_find_prop_node(property: property, file: file)
|
113
119
|
end
|
114
120
|
|
121
|
+
def find_property_in_directory_build_packages(property:, callsite_file:)
|
122
|
+
file = build_packages_file_for_project(callsite_file)
|
123
|
+
return unless file
|
124
|
+
|
125
|
+
deep_find_prop_node(property: property, file: file)
|
126
|
+
end
|
127
|
+
|
115
128
|
def find_property_in_packages_props(property:)
|
116
129
|
file = packages_props_file
|
117
130
|
return unless file
|
@@ -152,6 +165,22 @@ module Dependabot
|
|
152
165
|
dependency_files.find { |f| f.name == path }
|
153
166
|
end
|
154
167
|
|
168
|
+
def build_packages_file_for_project(project_file)
|
169
|
+
dir = File.dirname(project_file.name)
|
170
|
+
|
171
|
+
# Nuget walks up the directory structure looking for a
|
172
|
+
# Directory.Packages.props file
|
173
|
+
possible_paths = dir.split("/").map.with_index do |_, i|
|
174
|
+
base = dir.split("/").first(i + 1).join("/")
|
175
|
+
Pathname.new(base + "/Directory.Packages.props").cleanpath.to_path
|
176
|
+
end.reverse + ["Directory.Packages.props"]
|
177
|
+
|
178
|
+
path = possible_paths.uniq.
|
179
|
+
find { |p| dependency_files.find { |f| f.name == p } }
|
180
|
+
|
181
|
+
dependency_files.find { |f| f.name == path }
|
182
|
+
end
|
183
|
+
|
155
184
|
def packages_props_file
|
156
185
|
dependency_files.find { |f| f.name.casecmp("Packages.props").zero? }
|
157
186
|
end
|
@@ -13,6 +13,8 @@ module Dependabot
|
|
13
13
|
<PackageReference [^>]*?[^/]>.*?</PackageReference>|
|
14
14
|
<GlobalPackageReference [^>]*?/>|
|
15
15
|
<GlobalPackageReference [^>]*?[^/]>.*?</GlobalPackageReference>|
|
16
|
+
<PackageVersion [^>]*?/>|
|
17
|
+
<PackageVersion [^>]*?[^/]>.*?</PackageVersion>|
|
16
18
|
<Dependency [^>]*?/>|
|
17
19
|
<Dependency [^>]*?[^/]>.*?</Dependency>|
|
18
20
|
<DevelopmentDependency [^>]*?/>|
|
@@ -95,6 +95,7 @@ module Dependabot
|
|
95
95
|
dependency_files: dependency_files,
|
96
96
|
credentials: credentials,
|
97
97
|
ignored_versions: ignored_versions,
|
98
|
+
raise_on_ignored: @raise_on_ignored,
|
98
99
|
security_advisories: security_advisories
|
99
100
|
)
|
100
101
|
end
|
@@ -106,7 +107,8 @@ module Dependabot
|
|
106
107
|
dependency_files: dependency_files,
|
107
108
|
target_version_details: latest_version_details,
|
108
109
|
credentials: credentials,
|
109
|
-
ignored_versions: ignored_versions
|
110
|
+
ignored_versions: ignored_versions,
|
111
|
+
raise_on_ignored: @raise_on_ignored
|
110
112
|
)
|
111
113
|
end
|
112
114
|
|
@@ -11,11 +11,13 @@ module Dependabot
|
|
11
11
|
require_relative "requirements_updater"
|
12
12
|
|
13
13
|
def initialize(dependency:, dependency_files:, credentials:,
|
14
|
-
target_version_details:, ignored_versions
|
14
|
+
target_version_details:, ignored_versions:,
|
15
|
+
raise_on_ignored: false)
|
15
16
|
@dependency = dependency
|
16
17
|
@dependency_files = dependency_files
|
17
18
|
@credentials = credentials
|
18
19
|
@ignored_versions = ignored_versions
|
20
|
+
@raise_on_ignored = raise_on_ignored
|
19
21
|
@target_version = target_version_details&.fetch(:version)
|
20
22
|
@source_details = target_version_details&.
|
21
23
|
slice(:nuspec_url, :repo_url, :source_url)
|
@@ -31,6 +33,7 @@ module Dependabot
|
|
31
33
|
dependency_files: dependency_files,
|
32
34
|
credentials: credentials,
|
33
35
|
ignored_versions: ignored_versions,
|
36
|
+
raise_on_ignored: @raise_on_ignored,
|
34
37
|
security_advisories: []
|
35
38
|
).versions.map { |v| v.fetch(:version) }
|
36
39
|
|
@@ -15,11 +15,13 @@ module Dependabot
|
|
15
15
|
require_relative "repository_finder"
|
16
16
|
|
17
17
|
def initialize(dependency:, dependency_files:, credentials:,
|
18
|
-
ignored_versions:,
|
18
|
+
ignored_versions:, raise_on_ignored: false,
|
19
|
+
security_advisories:)
|
19
20
|
@dependency = dependency
|
20
21
|
@dependency_files = dependency_files
|
21
22
|
@credentials = credentials
|
22
23
|
@ignored_versions = ignored_versions
|
24
|
+
@raise_on_ignored = raise_on_ignored
|
23
25
|
@security_advisories = security_advisories
|
24
26
|
end
|
25
27
|
|
@@ -38,8 +40,8 @@ module Dependabot
|
|
38
40
|
begin
|
39
41
|
possible_versions = versions
|
40
42
|
possible_versions = filter_prereleases(possible_versions)
|
41
|
-
possible_versions = filter_ignored_versions(possible_versions)
|
42
43
|
possible_versions = filter_vulnerable_versions(possible_versions)
|
44
|
+
possible_versions = filter_ignored_versions(possible_versions)
|
43
45
|
possible_versions = filter_lower_versions(possible_versions)
|
44
46
|
possible_versions.min_by { |hash| hash.fetch(:version) }
|
45
47
|
end
|
@@ -62,16 +64,20 @@ module Dependabot
|
|
62
64
|
end
|
63
65
|
|
64
66
|
def filter_ignored_versions(possible_versions)
|
65
|
-
|
67
|
+
filtered = possible_versions
|
66
68
|
|
67
69
|
ignored_versions.each do |req|
|
68
70
|
ignore_req = requirement_class.new(req.split(","))
|
69
|
-
|
70
|
-
|
71
|
+
filtered =
|
72
|
+
filtered.
|
71
73
|
reject { |v| ignore_req.satisfied_by?(v.fetch(:version)) }
|
72
74
|
end
|
73
75
|
|
74
|
-
|
76
|
+
if @raise_on_ignored && filtered.empty? && possible_versions.any?
|
77
|
+
raise AllVersionsIgnored
|
78
|
+
end
|
79
|
+
|
80
|
+
filtered
|
75
81
|
end
|
76
82
|
|
77
83
|
def filter_vulnerable_versions(possible_versions)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dependabot-nuget
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.118.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-16 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.118.2
|
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.118.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: byebug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,28 +114,28 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.
|
117
|
+
version: 0.85.0
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.
|
124
|
+
version: 0.85.0
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: vcr
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - '='
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
131
|
+
version: 6.0.0
|
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:
|
138
|
+
version: 6.0.0
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: webmock
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|