dependabot-nuget 0.301.0 → 0.302.0

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.
Files changed (19) hide show
  1. checksums.yaml +4 -4
  2. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/DependencyDiscovery.props +4 -1
  3. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/DependencyDiscovery.targets +19 -4
  4. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DiscoveryWorker.cs +85 -81
  5. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/SdkProjectDiscovery.cs +177 -28
  6. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/FrameworkChecker/FrameworkCompatibilityService.cs +15 -6
  7. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/FrameworkChecker/SupportedFrameworks.cs +6 -4
  8. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackagesConfigUpdater.cs +1 -1
  9. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/{WebApplicationTargetsConditionPatcher.cs → SpecialImportsConditionPatcher.cs} +18 -11
  10. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/XmlFilePreAndPostProcessor.cs +26 -11
  11. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +37 -11
  12. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/AnalyzeWorkerTests.cs +54 -0
  13. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.PackagesConfig.cs +54 -0
  14. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Project.cs +94 -0
  15. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/FrameworkChecker/FrameworkCompatibilityServiceFacts.cs +1 -1
  16. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/SpecialFilePatcherTests.cs +99 -0
  17. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.PackageReference.cs +38 -0
  18. data/lib/dependabot/nuget/file_parser.rb +22 -19
  19. metadata +7 -6
@@ -41,13 +41,6 @@ module Dependabot
41
41
  sig { returns(T.nilable(T::Array[String])) }
42
42
  def content_json
43
43
  @content_json ||= T.let(begin
44
- directory = source&.directory || "/"
45
- discovery_json_reader = DiscoveryJsonReader.run_discovery_in_directory(
46
- repo_contents_path: T.must(repo_contents_path),
47
- directory: directory,
48
- credentials: credentials
49
- )
50
-
51
44
  discovery_json_reader.workspace_discovery&.projects&.map do |framework|
52
45
  T.let(framework.instance_variable_get(:@target_frameworks), T::Array[String]).compact.join(",")
53
46
  end
@@ -56,34 +49,44 @@ module Dependabot
56
49
 
57
50
  sig { returns(T::Array[Dependabot::Dependency]) }
58
51
  def dependencies
59
- @dependencies ||= T.let(begin
60
- NativeHelpers.install_dotnet_sdks
61
- directory = source&.directory || "/"
62
- discovery_json_reader = DiscoveryJsonReader.run_discovery_in_directory(
63
- repo_contents_path: T.must(repo_contents_path),
64
- directory: directory,
65
- credentials: credentials
66
- )
67
- discovery_json_reader.dependency_set.dependencies
68
- end, T.nilable(T::Array[Dependabot::Dependency]))
52
+ NativeHelpers.install_dotnet_sdks
53
+ @dependencies ||= T.let(discovery_json_reader.dependency_set.dependencies,
54
+ T.nilable(T::Array[Dependabot::Dependency]))
69
55
  end
70
56
 
57
+ # rubocop:disable Metrics/PerceivedComplexity
71
58
  sig { override.void }
72
59
  def check_required_files
73
60
  requirement_files = dependencies.flat_map do |dep|
74
61
  dep.requirements.map { |r| T.let(r.fetch(:file), String) }
75
62
  end.uniq
76
63
 
77
- project_files = requirement_files.select { |f| File.basename(f).match?(/\.(cs|vb|fs)proj$/) }
64
+ proj_pattern = /\.(cs|vb|fs)proj$/
65
+ found_files = discovery_json_reader.dependency_file_paths.select { |f| File.basename(f).match?(proj_pattern) }
66
+ project_files = requirement_files.select { |f| File.basename(f).match?(proj_pattern) }
78
67
  global_json_file = requirement_files.select { |f| File.basename(f) == "global.json" }
79
68
  dotnet_tools_json_file = requirement_files.select { |f| File.basename(f) == "dotnet-tools.json" }
80
- return if project_files.any? || global_json_file.any? || dotnet_tools_json_file.any?
69
+ has_files = found_files.any? || project_files.any? || global_json_file.any? || dotnet_tools_json_file.any?
70
+ return if has_files
81
71
 
82
72
  raise Dependabot::DependencyFileNotFound.new(
83
73
  "*.(cs|vb|fs)proj",
84
74
  "No project file."
85
75
  )
86
76
  end
77
+ # rubocop:enable Metrics/PerceivedComplexity
78
+
79
+ sig { returns(DiscoveryJsonReader) }
80
+ def discovery_json_reader
81
+ @discovery_json_reader ||= T.let(begin
82
+ directory = source&.directory || "/"
83
+ DiscoveryJsonReader.run_discovery_in_directory(
84
+ repo_contents_path: T.must(repo_contents_path),
85
+ directory: directory,
86
+ credentials: credentials
87
+ )
88
+ end, T.nilable(DiscoveryJsonReader))
89
+ end
87
90
 
88
91
  sig { returns(T.nilable(Ecosystem::VersionManager)) }
89
92
  def language
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.301.0
4
+ version: 0.302.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-03-13 00:00:00.000000000 Z
11
+ date: 2025-03-20 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.301.0
19
+ version: 0.302.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.301.0
26
+ version: 0.302.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubyzip
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -367,6 +367,7 @@ files:
367
367
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/BindingRedirectsTests.cs
368
368
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/ExpectedUpdateOperationResult.cs
369
369
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/PackagesConfigUpdaterTests.cs
370
+ - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/SpecialFilePatcherTests.cs
370
371
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTestBase.cs
371
372
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DirsProj.cs
372
373
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DotNetTools.cs
@@ -492,10 +493,10 @@ files:
492
493
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/LockFileUpdater.cs
493
494
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackageReferenceUpdater.cs
494
495
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackagesConfigUpdater.cs
496
+ - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/SpecialImportsConditionPatcher.cs
495
497
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdateOperationResult.cs
496
498
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdateResult.cs
497
499
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdaterWorker.cs
498
- - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/WebApplicationTargetsConditionPatcher.cs
499
500
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/XmlFilePreAndPostProcessor.cs
500
501
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/CollectionExtensions.cs
501
502
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ConsoleLogger.cs
@@ -544,7 +545,7 @@ licenses:
544
545
  - MIT
545
546
  metadata:
546
547
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
547
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.301.0
548
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.302.0
548
549
  post_install_message:
549
550
  rdoc_options: []
550
551
  require_paths: