dependabot-nuget 0.111.35 → 0.111.36

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: bd4cbd0ba1fc0f54682ca4f6d282b43511155167d15e427225048478e64799ea
4
- data.tar.gz: cd88c1769dadf9cd62f6a05d719178be343bb01122dcdf3f89956824ddf127a0
3
+ metadata.gz: f16ae47a3670b1551bd50ae80988ee35f440335e15a8a1942bb86f14caffeb4d
4
+ data.tar.gz: f029c8c5044f20fc6bc530d3c08c8e289389a344b2c8de1eda7648beb38702b4
5
5
  SHA512:
6
- metadata.gz: e4bc44215d93b7f7293bbdcdcf8d482f35d4a3596ca4d763e8c78a343635f3eef697002fd8c8b2f9cd64071331ed2de2d680b18d3eaf2f9c7b331abb56d0966e
7
- data.tar.gz: 64887728a63d2429489d4888b8078ffc73dbcfbddb5396d859a4b26d6f928e8ef9bdbf3fe49421491189af3c50be1b6234e894219fd1857a35eae5c887f06b2c
6
+ metadata.gz: b646d2c58d0b005e15dfdd7109be97bd9bdaf36ffdd194b5ca8320f22b675ce76dd787b2e16a29312e4a91292246c39fef3a64f8d1c3c4b925bd04944d221943
7
+ data.tar.gz: 0cc61846f5359bc57fc88f928c04e20873217d9a9972c29e7e3af9b906d4407a9f7429ef98661fb7e4431aab0a361ce718006c3d34e326c486825d77cde16363
@@ -30,7 +30,7 @@ module Dependabot
30
30
  fetched_files += imported_property_files
31
31
 
32
32
  fetched_files += packages_config_files
33
- fetched_files << nuget_config if nuget_config
33
+ fetched_files += nuget_config_files
34
34
  fetched_files << global_json if global_json
35
35
 
36
36
  fetched_files = fetched_files.uniq
@@ -197,14 +197,19 @@ module Dependabot
197
197
  end
198
198
  end
199
199
 
200
- def nuget_config
201
- @nuget_config ||=
202
- begin
203
- file = repo_contents.
200
+ def nuget_config_files
201
+ return @nuget_config_files if @nuget_config_files
202
+
203
+ candidate_paths =
204
+ [*project_files.map { |f| File.dirname(f.name) }, "."].uniq
205
+
206
+ @nuget_config_files ||=
207
+ candidate_paths.map do |dir|
208
+ file = repo_contents(dir: dir).
204
209
  find { |f| f.name.casecmp("nuget.config").zero? }
205
- file = fetch_file_from_host(file.name) if file
210
+ file = fetch_file_from_host(File.join(dir, file.name)) if file
206
211
  file&.tap { |f| f.support_file = true }
207
- end
212
+ end.compact
208
213
  end
209
214
 
210
215
  def global_json
@@ -75,11 +75,12 @@ module Dependabot
75
75
  dependency_files -
76
76
  project_files -
77
77
  packages_config_files -
78
- [nuget_config, global_json]
78
+ nuget_configs -
79
+ [global_json]
79
80
  end
80
81
 
81
- def nuget_config
82
- dependency_files.find { |f| f.name.casecmp("nuget.config").zero? }
82
+ def nuget_configs
83
+ dependency_files.select { |f| f.name.match?(/nuget\.config$/i) }
83
84
  end
84
85
 
85
86
  def global_json
@@ -12,10 +12,10 @@ module Dependabot
12
12
  class RepositoryFinder
13
13
  DEFAULT_REPOSITORY_URL = "https://api.nuget.org/v3/index.json"
14
14
 
15
- def initialize(dependency:, credentials:, config_file: nil)
15
+ def initialize(dependency:, credentials:, config_files: [])
16
16
  @dependency = dependency
17
17
  @credentials = credentials
18
- @config_file = config_file
18
+ @config_files = config_files
19
19
  end
20
20
 
21
21
  def dependency_urls
@@ -24,7 +24,7 @@ module Dependabot
24
24
 
25
25
  private
26
26
 
27
- attr_reader :dependency, :credentials, :config_file
27
+ attr_reader :dependency, :credentials, :config_files
28
28
 
29
29
  def find_dependency_urls
30
30
  @find_dependency_urls ||=
@@ -143,10 +143,11 @@ module Dependabot
143
143
  map { |c| { url: c.fetch("url"), token: c["token"] } }
144
144
  end
145
145
 
146
- # rubocop:disable Metrics/AbcSize
147
146
  def config_file_repositories
148
- return [] unless config_file
147
+ config_files.flat_map { |file| repos_from_config_file(file) }
148
+ end
149
149
 
150
+ def repos_from_config_file(config_file)
150
151
  doc = Nokogiri::XML(config_file.content)
151
152
  doc.remove_namespaces!
152
153
  sources =
@@ -173,7 +174,6 @@ module Dependabot
173
174
 
174
175
  sources
175
176
  end
176
- # rubocop:enable Metrics/AbcSize
177
177
 
178
178
  def default_repository_details
179
179
  {
@@ -261,13 +261,13 @@ module Dependabot
261
261
  RepositoryFinder.new(
262
262
  dependency: dependency,
263
263
  credentials: credentials,
264
- config_file: nuget_config
264
+ config_files: nuget_configs
265
265
  ).dependency_urls
266
266
  end
267
267
 
268
- def nuget_config
269
- @nuget_config ||=
270
- dependency_files.find { |f| f.name.casecmp("nuget.config").zero? }
268
+ def nuget_configs
269
+ @nuget_configs ||=
270
+ dependency_files.select { |f| f.name.match?(/nuget\.config$/i) }
271
271
  end
272
272
 
273
273
  def sanitized_name
@@ -40,9 +40,50 @@ module Dependabot
40
40
  end
41
41
 
42
42
  def <=>(other)
43
- version_comparison = super(other)
43
+ version_comparison = compare_release(other)
44
44
  return version_comparison unless version_comparison.zero?
45
45
 
46
+ version_comparison = compare_prerelease_part(other)
47
+ return version_comparison unless version_comparison.zero?
48
+
49
+ compare_build_info(other)
50
+ end
51
+
52
+ def compare_release(other)
53
+ release_str = @version_string.split("-").first.split("+").first || ""
54
+ other_release_str = other.to_s.split("-").first.split("+").first || ""
55
+
56
+ Gem::Version.new(release_str).<=>(Gem::Version.new(other_release_str))
57
+ end
58
+
59
+ # rubocop:disable Metrics/CyclomaticComplexity
60
+ # rubocop:disable Metrics/PerceivedComplexity
61
+ def compare_prerelease_part(other)
62
+ release_str = @version_string.split("-").first.split("+").first || ""
63
+ prerelease_string = @version_string.
64
+ sub(release_str, "").
65
+ sub("-", "").
66
+ split("+").
67
+ first
68
+ prerelease_string = nil if prerelease_string == ""
69
+
70
+ other_release_str = other.to_s.split("-").first.split("+").first || ""
71
+ other_prerelease_string = other.to_s.
72
+ sub(other_release_str, "").
73
+ sub("-", "").
74
+ split("+").
75
+ first
76
+ other_prerelease_string = nil if other_prerelease_string == ""
77
+
78
+ return -1 if prerelease_string && !other_prerelease_string
79
+ return 1 if !prerelease_string && other_prerelease_string
80
+
81
+ prerelease_string.<=>(other_prerelease_string)
82
+ end
83
+ # rubocop:enable Metrics/CyclomaticComplexity
84
+ # rubocop:enable Metrics/PerceivedComplexity
85
+
86
+ def compare_build_info(other)
46
87
  return build_info.nil? ? 0 : 1 unless other.is_a?(Nuget::Version)
47
88
 
48
89
  # Build information comparison
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.111.35
4
+ version: 0.111.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-26 00:00:00.000000000 Z
11
+ date: 2019-07-27 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.111.35
19
+ version: 0.111.36
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.111.35
26
+ version: 0.111.36
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement