dependabot-nuget 0.111.35 → 0.111.36

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.
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