dependabot-nuget 0.280.0 → 0.281.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/AnalyzeCommand.cs +4 -6
  3. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/DiscoverCommand.cs +4 -6
  4. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/FrameworkCheckCommand.cs +4 -7
  5. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/RunCommand.cs +4 -6
  6. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/UpdateCommand.cs +3 -5
  7. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Analyze.cs +0 -3
  8. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.FrameworkCheck.cs +0 -1
  9. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Run.cs +1 -2
  10. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Update.cs +3 -6
  11. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/AnalyzeWorker.cs +9 -9
  12. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/CompatabilityChecker.cs +2 -2
  13. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/DependencyFinder.cs +1 -1
  14. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/NuGetContext.cs +2 -2
  15. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/VersionFinder.cs +5 -5
  16. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DirectoryPackagesPropsDiscovery.cs +1 -1
  17. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DiscoveryWorker.cs +3 -3
  18. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DotNetToolsJsonDiscovery.cs +1 -1
  19. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/GlobalJsonDiscovery.cs +1 -1
  20. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/PackagesConfigDiscovery.cs +1 -1
  21. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/SdkProjectDiscovery.cs +2 -2
  22. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/ErrorType.cs +1 -1
  23. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/DotNetToolsJsonBuildFile.cs +2 -2
  24. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/GlobalJsonBuildFile.cs +2 -2
  25. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/JsonBuildFile.cs +2 -2
  26. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/FrameworkChecker/CompatabilityChecker.cs +1 -1
  27. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/RunWorker.cs +2 -2
  28. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/BindingRedirectManager.cs +5 -5
  29. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/DotNetToolsJsonUpdater.cs +1 -1
  30. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/GlobalJsonUpdater.cs +1 -1
  31. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/LockFileUpdater.cs +2 -2
  32. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackagesConfigUpdater.cs +2 -2
  33. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/SdkPackageUpdater.cs +11 -11
  34. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdaterWorker.cs +11 -3
  35. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ConsoleLogger.cs +9 -0
  36. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/DependencyConflictResolver.cs +14 -16
  37. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ILogger.cs +6 -0
  38. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +11 -10
  39. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/NuGetHelper.cs +1 -1
  40. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/AnalyzeWorkerTestBase.cs +1 -1
  41. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/AnalyzeWorkerTests.cs +1 -1
  42. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/CompatibilityCheckerTests.cs +7 -7
  43. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTestBase.cs +1 -1
  44. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Files/DotNetToolsJsonBuildFileTests.cs +1 -1
  45. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Files/GlobalJsonBuildFileTests.cs +1 -1
  46. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/FrameworkChecker/CompatibilityCheckerFacts.cs +4 -4
  47. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/RunWorkerTests.cs +1 -1
  48. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TestLogger.cs +11 -0
  49. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/ExpectedUpdateOperationResult.cs +8 -0
  50. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTestBase.cs +14 -6
  51. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DirsProj.cs +1 -1
  52. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Mixed.cs +1 -1
  53. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.PackagesConfig.cs +144 -8
  54. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs +1 -1
  55. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +16 -16
  56. data/lib/dependabot/nuget/file_updater.rb +1 -0
  57. data/lib/dependabot/nuget/native_helpers.rb +10 -16
  58. metadata +12 -9
  59. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/Logger.cs +0 -21
@@ -1,3 +1,4 @@
1
+ using NuGetUpdater.Core.Test.Updater;
1
2
  using NuGetUpdater.Core.Updater;
2
3
 
3
4
  using Xunit;
@@ -91,7 +92,7 @@ public abstract class UpdateWorkerTestBase : TestBase
91
92
  TestFile[]? additionalFilesExpected = null,
92
93
  MockNuGetPackage[]? packages = null,
93
94
  string projectFilePath = "test-project.csproj",
94
- UpdateOperationResult? expectedResult = null)
95
+ ExpectedUpdateOperationResult? expectedResult = null)
95
96
  => TestUpdateForProject(
96
97
  dependencyName,
97
98
  oldVersion,
@@ -114,7 +115,7 @@ public abstract class UpdateWorkerTestBase : TestBase
114
115
  TestFile[]? additionalFiles = null,
115
116
  TestFile[]? additionalFilesExpected = null,
116
117
  MockNuGetPackage[]? packages = null,
117
- UpdateOperationResult? expectedResult = null)
118
+ ExpectedUpdateOperationResult? expectedResult = null)
118
119
  {
119
120
  additionalFiles ??= [];
120
121
  additionalFilesExpected ??= [];
@@ -133,7 +134,7 @@ public abstract class UpdateWorkerTestBase : TestBase
133
134
  await MockNuGetPackagesInDirectory(packages, temporaryDirectory);
134
135
 
135
136
  // run update
136
- var worker = new UpdaterWorker(new Logger(verbose: true));
137
+ var worker = new UpdaterWorker(new TestLogger());
137
138
  var projectPath = placeFilesInSrc ? $"src/{projectFilePath}" : projectFilePath;
138
139
  var actualResult = await worker.RunWithErrorHandlingAsync(temporaryDirectory, projectPath, dependencyName, oldVersion, newVersion, isTransitive);
139
140
  if (expectedResult is { })
@@ -151,10 +152,17 @@ public abstract class UpdateWorkerTestBase : TestBase
151
152
  AssertContainsFiles(expectedResultFiles, actualResult);
152
153
  }
153
154
 
154
- protected static void ValidateUpdateOperationResult(UpdateOperationResult expectedResult, UpdateOperationResult actualResult)
155
+ protected static void ValidateUpdateOperationResult(ExpectedUpdateOperationResult expectedResult, UpdateOperationResult actualResult)
155
156
  {
156
157
  Assert.Equal(expectedResult.ErrorType, actualResult.ErrorType);
157
- Assert.Equivalent(expectedResult.ErrorDetails, actualResult.ErrorDetails);
158
+ if (expectedResult.ErrorDetailsRegex is not null && actualResult.ErrorDetails is string errorDetails)
159
+ {
160
+ Assert.Matches(expectedResult.ErrorDetailsRegex, errorDetails);
161
+ }
162
+ else
163
+ {
164
+ Assert.Equivalent(expectedResult.ErrorDetails, actualResult.ErrorDetails);
165
+ }
158
166
  }
159
167
 
160
168
  protected static Task TestNoChangeforSolution(
@@ -229,7 +237,7 @@ public abstract class UpdateWorkerTestBase : TestBase
229
237
  await MockNuGetPackagesInDirectory(packages, temporaryDirectory);
230
238
 
231
239
  var slnPath = Path.Combine(temporaryDirectory, slnName);
232
- var worker = new UpdaterWorker(new Logger(verbose: true));
240
+ var worker = new UpdaterWorker(new TestLogger());
233
241
  await worker.RunAsync(temporaryDirectory, slnPath, dependencyName, oldVersion, newVersion, isTransitive);
234
242
  });
235
243
 
@@ -364,7 +364,7 @@ public partial class UpdateWorkerTests
364
364
  await MockNuGetPackagesInDirectory(packages, temporaryDirectory);
365
365
 
366
366
  var projectPath = Path.Combine(temporaryDirectory, projectFileName);
367
- var worker = new UpdaterWorker(new Logger(verbose: true));
367
+ var worker = new UpdaterWorker(new TestLogger());
368
368
  await worker.RunAsync(temporaryDirectory, projectPath, dependencyName, oldVersion, newVersion, isTransitive);
369
369
  });
370
370
 
@@ -20,7 +20,7 @@ public partial class UpdateWorkerTests
20
20
  ErrorDetails = "<some package feed>",
21
21
  };
22
22
  var resultFilePath = Path.Combine(temporaryDirectory.DirectoryPath, "update-result.json");
23
- await UpdaterWorker.WriteResultFile(result, resultFilePath, new Logger(false));
23
+ await UpdaterWorker.WriteResultFile(result, resultFilePath, new TestLogger());
24
24
  var resultContent = await File.ReadAllTextAsync(resultFilePath);
25
25
 
26
26
  // raw result file should look like this:
@@ -4,6 +4,7 @@ using System.Text.Json;
4
4
 
5
5
  using NuGet;
6
6
 
7
+ using NuGetUpdater.Core.Test.Updater;
7
8
  using NuGetUpdater.Core.Updater;
8
9
 
9
10
  using Xunit;
@@ -603,8 +604,12 @@ public partial class UpdateWorkerTests
603
604
  );
604
605
  }
605
606
 
606
- [Fact]
607
- public async Task UpdateBindingRedirectInWebConfig()
607
+ // the xml can take various shapes and they're all formatted, so we need very specific values here
608
+ [Theory]
609
+ [InlineData("<Content Include=\"web.config\" />")]
610
+ [InlineData("<Content Include=\"web.config\">\n </Content>")]
611
+ [InlineData("<Content Include=\"web.config\">\n <SubType>Designer</SubType>\n </Content>")]
612
+ public async Task UpdateBindingRedirectInWebConfig(string webConfigXml)
608
613
  {
609
614
  await TestUpdateForProject("Some.Package", "7.0.1", "13.0.1",
610
615
  packages:
@@ -612,7 +617,7 @@ public partial class UpdateWorkerTests
612
617
  MockNuGetPackage.CreatePackageWithAssembly("Some.Package", "7.0.1", "net45", "7.0.0.0"),
613
618
  MockNuGetPackage.CreatePackageWithAssembly("Some.Package", "13.0.1", "net45", "13.0.0.0"),
614
619
  ],
615
- projectContents: """
620
+ projectContents: $$"""
616
621
  <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
617
622
  <PropertyGroup>
618
623
  <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -669,7 +674,7 @@ public partial class UpdateWorkerTests
669
674
  </ItemGroup>
670
675
  <ItemGroup>
671
676
  <None Include="packages.config" />
672
- <Content Include="web.config" />
677
+ {{webConfigXml}}
673
678
  <Content Include="web.Debug.config">
674
679
  <DependentUpon>web.config</DependentUpon>
675
680
  </Content>
@@ -711,7 +716,7 @@ public partial class UpdateWorkerTests
711
716
  </configuration>
712
717
  """)
713
718
  ],
714
- expectedProjectContents: """
719
+ expectedProjectContents: $$"""
715
720
  <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
716
721
  <PropertyGroup>
717
722
  <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -768,7 +773,7 @@ public partial class UpdateWorkerTests
768
773
  </ItemGroup>
769
774
  <ItemGroup>
770
775
  <None Include="packages.config" />
771
- <Content Include="web.config" />
776
+ {{webConfigXml}}
772
777
  <Content Include="web.Debug.config">
773
778
  <DependentUpon>web.config</DependentUpon>
774
779
  </Content>
@@ -2100,7 +2105,7 @@ public partial class UpdateWorkerTests
2100
2105
  await MockNuGetPackagesInDirectory(packages, Path.Combine(temporaryDirectory.DirectoryPath, "packages"));
2101
2106
  var resultOutputPath = Path.Combine(temporaryDirectory.DirectoryPath, "result.json");
2102
2107
 
2103
- var worker = new UpdaterWorker(new Logger(verbose: true));
2108
+ var worker = new UpdaterWorker(new TestLogger());
2104
2109
  await worker.RunAsync(temporaryDirectory.DirectoryPath, "project.csproj", "Some.Package", "1.0.0", "1.1.0", isTransitive: false, resultOutputPath: resultOutputPath);
2105
2110
 
2106
2111
  var resultContents = await File.ReadAllTextAsync(resultOutputPath);
@@ -2190,6 +2195,137 @@ public partial class UpdateWorkerTests
2190
2195
  );
2191
2196
  }
2192
2197
 
2198
+ [Fact]
2199
+ public async Task ReportsUnexpectedResponseFromNuGetServer()
2200
+ {
2201
+ static (int, string) TestHttpHandler(string uriString)
2202
+ {
2203
+ var uri = new Uri(uriString, UriKind.Absolute);
2204
+ var baseUrl = $"{uri.Scheme}://{uri.Host}:{uri.Port}";
2205
+ return uri.PathAndQuery switch
2206
+ {
2207
+ // initial and search query are good, update should be possible...
2208
+ "/index.json" => (200, $$"""
2209
+ {
2210
+ "version": "3.0.0",
2211
+ "resources": [
2212
+ {
2213
+ "@id": "{{baseUrl}}/download",
2214
+ "@type": "PackageBaseAddress/3.0.0"
2215
+ },
2216
+ {
2217
+ "@id": "{{baseUrl}}/query",
2218
+ "@type": "SearchQueryService"
2219
+ },
2220
+ {
2221
+ "@id": "{{baseUrl}}/registrations",
2222
+ "@type": "RegistrationsBaseUrl"
2223
+ }
2224
+ ]
2225
+ }
2226
+ """),
2227
+ "/registrations/some.package/index.json" => (200, $$"""
2228
+ {
2229
+ "count": 1,
2230
+ "items": [
2231
+ {
2232
+ "lower": "1.0.0",
2233
+ "upper": "1.1.0",
2234
+ "items": [
2235
+ {
2236
+ "catalogEntry": {
2237
+ "id": "Some.Package",
2238
+ "listed": true,
2239
+ "version": "1.0.0"
2240
+ },
2241
+ "packageContent": "{{baseUrl}}/download/some.package/1.0.0/some.package.1.0.0.nupkg",
2242
+ },
2243
+ {
2244
+ "catalogEntry": {
2245
+ "id": "Some.Package",
2246
+ "listed": true,
2247
+ "version": "1.1.0"
2248
+ },
2249
+ "packageContent": "{{baseUrl}}/download/some.package/1.1.0/some.package.1.1.0.nupkg",
2250
+ }
2251
+ ]
2252
+ }
2253
+ ]
2254
+ }
2255
+ """),
2256
+ // ...but all other calls to the server fail
2257
+ _ => (500, "{}"),
2258
+ };
2259
+ }
2260
+ using var http = TestHttpServer.CreateTestStringServer(TestHttpHandler);
2261
+ await TestUpdateForProject("Some.Package", "1.0.0", "1.1.0",
2262
+ // existing
2263
+ projectContents: """
2264
+ <Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2265
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
2266
+ <PropertyGroup>
2267
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
2268
+ </PropertyGroup>
2269
+ <ItemGroup>
2270
+ <None Include="packages.config" />
2271
+ </ItemGroup>
2272
+ <ItemGroup>
2273
+ <Reference Include="Some.Package, Version=1.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
2274
+ <HintPath>packages\Some.Package.1.0.0\lib\net45\Some.Package.dll</HintPath>
2275
+ <Private>True</Private>
2276
+ </Reference>
2277
+ </ItemGroup>
2278
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
2279
+ </Project>
2280
+ """,
2281
+ packagesConfigContents: """
2282
+ <packages>
2283
+ <package id="Some.Package" version="1.0.0" targetFramework="net45" />
2284
+ </packages>
2285
+ """,
2286
+ additionalFiles:
2287
+ [
2288
+ ("NuGet.Config", $"""
2289
+ <configuration>
2290
+ <packageSources>
2291
+ <clear />
2292
+ <add key="private_feed" value="{http.BaseUrl.TrimEnd('/')}/index.json" allowInsecureConnections="true" />
2293
+ </packageSources>
2294
+ </configuration>
2295
+ """)
2296
+ ],
2297
+ // expected
2298
+ expectedProjectContents: """
2299
+ <Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2300
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
2301
+ <PropertyGroup>
2302
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
2303
+ </PropertyGroup>
2304
+ <ItemGroup>
2305
+ <None Include="packages.config" />
2306
+ </ItemGroup>
2307
+ <ItemGroup>
2308
+ <Reference Include="Some.Package, Version=1.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
2309
+ <HintPath>packages\Some.Package.1.0.0\lib\net45\Some.Package.dll</HintPath>
2310
+ <Private>True</Private>
2311
+ </Reference>
2312
+ </ItemGroup>
2313
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
2314
+ </Project>
2315
+ """,
2316
+ expectedPackagesConfigContents: """
2317
+ <packages>
2318
+ <package id="Some.Package" version="1.0.0" targetFramework="net45" />
2319
+ </packages>
2320
+ """,
2321
+ expectedResult: new()
2322
+ {
2323
+ ErrorType = ErrorType.Unknown,
2324
+ ErrorDetailsRegex = "Response status code does not indicate success",
2325
+ }
2326
+ );
2327
+ }
2328
+
2193
2329
  [Fact]
2194
2330
  public async Task MissingDependencyErrorIsReported()
2195
2331
  {
@@ -2279,7 +2415,7 @@ public partial class UpdateWorkerTests
2279
2415
  (string Path, string Content)[]? additionalFiles = null,
2280
2416
  (string Path, string Content)[]? additionalFilesExpected = null,
2281
2417
  MockNuGetPackage[]? packages = null,
2282
- UpdateOperationResult? expectedResult = null)
2418
+ ExpectedUpdateOperationResult? expectedResult = null)
2283
2419
  {
2284
2420
  var realizedAdditionalFiles = new List<(string Path, string Content)>
2285
2421
  {
@@ -454,7 +454,7 @@ public partial class UpdateWorkerTests
454
454
  //
455
455
  // do the update
456
456
  //
457
- UpdaterWorker worker = new(new(verbose: true));
457
+ UpdaterWorker worker = new(new TestLogger());
458
458
  await worker.RunAsync(tempDirectory.DirectoryPath, projectPath, "Some.Package", "1.0.0", "1.1.0", isTransitive: false);
459
459
 
460
460
  //
@@ -483,7 +483,7 @@ public class MSBuildHelperTests : TestBase
483
483
  {
484
484
  new Dependency("Some.Other.Package", "1.2.0", DependencyType.PackageReference),
485
485
  };
486
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
486
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
487
487
  Assert.NotNull(resolvedDependencies);
488
488
  Assert.Equal(2, resolvedDependencies.Length);
489
489
  Assert.Equal("Some.Package", resolvedDependencies[0].Name);
@@ -533,7 +533,7 @@ public class MSBuildHelperTests : TestBase
533
533
  new Dependency("CS-Script.Core", "2.0.0", DependencyType.PackageReference),
534
534
  };
535
535
 
536
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
536
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
537
537
  Assert.NotNull(resolvedDependencies);
538
538
  Assert.Equal(3, resolvedDependencies.Length);
539
539
  Assert.Equal("CS-Script.Core", resolvedDependencies[0].Name);
@@ -578,7 +578,7 @@ public class MSBuildHelperTests : TestBase
578
578
  new Dependency("Microsoft.Bcl.AsyncInterfaces", "1.1.1", DependencyType.Unknown)
579
579
  };
580
580
 
581
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
581
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
582
582
  Assert.NotNull(resolvedDependencies);
583
583
  Assert.Single(resolvedDependencies);
584
584
  Assert.Equal("Azure.Core", resolvedDependencies[0].Name);
@@ -621,7 +621,7 @@ public class MSBuildHelperTests : TestBase
621
621
  new Dependency("Newtonsoft.Json", "13.0.1", DependencyType.Unknown)
622
622
  };
623
623
 
624
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
624
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
625
625
  Assert.NotNull(resolvedDependencies);
626
626
  Assert.Equal(2, resolvedDependencies.Length);
627
627
  Assert.Equal("Newtonsoft.Json.Bson", resolvedDependencies[0].Name);
@@ -671,7 +671,7 @@ public class MSBuildHelperTests : TestBase
671
671
  new Dependency("Microsoft.CodeAnalysis.Common", "4.10.0", DependencyType.PackageReference)
672
672
  };
673
673
 
674
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
674
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
675
675
  Assert.NotNull(resolvedDependencies);
676
676
  Assert.Equal(3, resolvedDependencies.Length);
677
677
  Assert.Equal("Microsoft.CodeAnalysis.Compilers", resolvedDependencies[0].Name);
@@ -723,7 +723,7 @@ public class MSBuildHelperTests : TestBase
723
723
  new Dependency("Microsoft.CodeAnalysis.Common", "4.10.0", DependencyType.PackageReference)
724
724
  };
725
725
 
726
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
726
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
727
727
  Assert.NotNull(resolvedDependencies);
728
728
  Assert.Equal(4, resolvedDependencies.Length);
729
729
  Assert.Equal("Microsoft.CodeAnalysis.Compilers", resolvedDependencies[0].Name);
@@ -779,7 +779,7 @@ public class MSBuildHelperTests : TestBase
779
779
  new Dependency("Newtonsoft.Json", "13.0.1", DependencyType.Unknown)
780
780
  };
781
781
 
782
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
782
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
783
783
  Assert.NotNull(resolvedDependencies);
784
784
  Assert.Equal(5, resolvedDependencies.Length);
785
785
  Assert.Equal("Microsoft.CodeAnalysis.Compilers", resolvedDependencies[0].Name);
@@ -838,7 +838,7 @@ public class MSBuildHelperTests : TestBase
838
838
  new Dependency("Buildalyzer", "7.0.1", DependencyType.PackageReference),
839
839
  };
840
840
 
841
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
841
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
842
842
  Assert.NotNull(resolvedDependencies);
843
843
  Assert.Equal(4, resolvedDependencies.Length);
844
844
  Assert.Equal("Buildalyzer", resolvedDependencies[0].Name);
@@ -895,7 +895,7 @@ public class MSBuildHelperTests : TestBase
895
895
  new Dependency("Azure.Core", "1.22.0", DependencyType.PackageReference)
896
896
  };
897
897
 
898
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
898
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
899
899
  Assert.NotNull(resolvedDependencies);
900
900
  Assert.Equal(4, resolvedDependencies.Length);
901
901
  Assert.Equal("System.Collections.Immutable", resolvedDependencies[0].Name);
@@ -952,7 +952,7 @@ public class MSBuildHelperTests : TestBase
952
952
  new Dependency("Azure.Core", "1.22.0", DependencyType.PackageReference)
953
953
  };
954
954
 
955
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
955
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
956
956
  Assert.NotNull(resolvedDependencies);
957
957
  Assert.Equal(5, resolvedDependencies.Length);
958
958
  Assert.Equal("System.Collections.Immutable", resolvedDependencies[0].Name);
@@ -1007,7 +1007,7 @@ public class MSBuildHelperTests : TestBase
1007
1007
  new Dependency("AutoMapper.Collection", "10.0.0", DependencyType.PackageReference)
1008
1008
  };
1009
1009
 
1010
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
1010
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
1011
1011
  Assert.NotNull(resolvedDependencies);
1012
1012
  Assert.Equal(3, resolvedDependencies.Length);
1013
1013
  Assert.Equal("AutoMapper.Extensions.Microsoft.DependencyInjection", resolvedDependencies[0].Name);
@@ -1054,7 +1054,7 @@ public class MSBuildHelperTests : TestBase
1054
1054
  new Dependency("Microsoft.Extensions.Caching.Memory", "8.0.0", DependencyType.PackageReference)
1055
1055
  };
1056
1056
 
1057
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
1057
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
1058
1058
  Assert.NotNull(resolvedDependencies);
1059
1059
  Assert.Equal(2, resolvedDependencies.Length);
1060
1060
  Assert.Equal("Microsoft.EntityFrameworkCore", resolvedDependencies[0].Name);
@@ -1104,7 +1104,7 @@ public class MSBuildHelperTests : TestBase
1104
1104
  new Dependency("Microsoft.EntityFrameworkCore.Analyzers", "8.0.0", DependencyType.PackageReference)
1105
1105
  };
1106
1106
 
1107
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
1107
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
1108
1108
  Assert.NotNull(resolvedDependencies);
1109
1109
  Assert.Equal(4, resolvedDependencies.Length);
1110
1110
  Assert.Equal("Microsoft.EntityFrameworkCore.Design", resolvedDependencies[0].Name);
@@ -1156,7 +1156,7 @@ public class MSBuildHelperTests : TestBase
1156
1156
  new Dependency("Microsoft.EntityFrameworkCore.Analyzers", "8.0.0", DependencyType.PackageReference)
1157
1157
  };
1158
1158
 
1159
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
1159
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
1160
1160
  Assert.NotNull(resolvedDependencies);
1161
1161
  Assert.Equal(3, resolvedDependencies.Length);
1162
1162
  Assert.Equal("Microsoft.EntityFrameworkCore.Design", resolvedDependencies[0].Name);
@@ -1208,7 +1208,7 @@ public class MSBuildHelperTests : TestBase
1208
1208
  new Dependency("System.Collections.Immutable", "8.0.0", DependencyType.PackageReference),
1209
1209
  };
1210
1210
 
1211
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
1211
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
1212
1212
  Assert.NotNull(resolvedDependencies);
1213
1213
  Assert.Equal(4, resolvedDependencies.Length);
1214
1214
  Assert.Equal("System.Collections.Immutable", resolvedDependencies[0].Name);
@@ -1260,7 +1260,7 @@ public class MSBuildHelperTests : TestBase
1260
1260
  new Dependency("System.Collections.Immutable", "8.0.0", DependencyType.PackageReference),
1261
1261
  };
1262
1262
 
1263
- var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new Logger(true));
1263
+ var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger());
1264
1264
  Assert.NotNull(resolvedDependencies);
1265
1265
  Assert.Equal(3, resolvedDependencies.Length);
1266
1266
  Assert.Equal("Microsoft.CodeAnalysis.CSharp.Workspaces", resolvedDependencies[0].Name);
@@ -20,6 +20,7 @@ module Dependabot
20
20
  def self.updated_files_regex
21
21
  [
22
22
  /.*\.([a-z]{2})?proj$/, # Matches files with any extension like .csproj, .vbproj, etc., in any directory
23
+ /packages\.lock\.json/, # Matches packages.lock.json in any directory
23
24
  /packages\.config$/i, # Matches packages.config in any directory
24
25
  /app\.config$/i, # Matches app.config in any directory
25
26
  /web\.config$/i, # Matches web.config in any directory
@@ -28,8 +28,7 @@ module Dependabot
28
28
  "--project-tfms",
29
29
  *project_tfms,
30
30
  "--package-tfms",
31
- *package_tfms,
32
- "--verbose"
31
+ *package_tfms
33
32
  ]
34
33
  command = Shellwords.join(command_parts)
35
34
 
@@ -39,8 +38,7 @@ module Dependabot
39
38
  "--project-tfms",
40
39
  "<project-tfms>",
41
40
  "--package-tfms",
42
- "<package-tfms>",
43
- "--verbose"
41
+ "<package-tfms>"
44
42
  ].join(" ")
45
43
 
46
44
  puts "running NuGet updater:\n" + command
@@ -68,8 +66,7 @@ module Dependabot
68
66
  "--workspace",
69
67
  workspace_path,
70
68
  "--output",
71
- output_path,
72
- "--verbose"
69
+ output_path
73
70
  ].compact
74
71
 
75
72
  command = Shellwords.join(command_parts)
@@ -82,8 +79,7 @@ module Dependabot
82
79
  "--workspace",
83
80
  "<path-to-workspace>",
84
81
  "--output",
85
- "<path-to-output>",
86
- "--verbose"
82
+ "<path-to-output>"
87
83
  ].compact.join(" ")
88
84
 
89
85
  [command, fingerprint]
@@ -127,8 +123,7 @@ module Dependabot
127
123
  "--dependency-file-path",
128
124
  dependency_file_path,
129
125
  "--analysis-folder-path",
130
- analysis_folder_path,
131
- "--verbose"
126
+ analysis_folder_path
132
127
  ].compact
133
128
 
134
129
  command = Shellwords.join(command_parts)
@@ -141,8 +136,7 @@ module Dependabot
141
136
  "--dependency-file-path",
142
137
  "<dependency-file-path>",
143
138
  "--analysis-folder-path",
144
- "<analysis_folder_path>",
145
- "--verbose"
139
+ "<analysis_folder_path>"
146
140
  ].compact.join(" ")
147
141
 
148
142
  [command, fingerprint]
@@ -191,8 +185,7 @@ module Dependabot
191
185
  dependency.previous_version,
192
186
  is_transitive ? "--transitive" : nil,
193
187
  "--result-output-path",
194
- result_output_path,
195
- "--verbose"
188
+ result_output_path
196
189
  ].compact
197
190
 
198
191
  command = Shellwords.join(command_parts)
@@ -212,8 +205,7 @@ module Dependabot
212
205
  "<previous-version>",
213
206
  is_transitive ? "--transitive" : nil,
214
207
  "--result-output-path",
215
- "<result-output-path>",
216
- "--verbose"
208
+ "<result-output-path>"
217
209
  ].compact.join(" ")
218
210
 
219
211
  [command, fingerprint]
@@ -273,6 +265,8 @@ module Dependabot
273
265
  raise DependencyFileNotFound, T.let(error_details, T.nilable(String))
274
266
  when "UpdateNotPossible"
275
267
  raise UpdateNotPossible, T.let(error_details, T::Array[String])
268
+ when "Unknown"
269
+ raise DependabotError, T.let(error_details, String)
276
270
  else
277
271
  raise "Unexpected error type from native tool: #{error_type}: #{error_details}"
278
272
  end
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.280.0
4
+ version: 0.281.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-10 00:00:00.000000000 Z
11
+ date: 2024-10-17 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.280.0
19
+ version: 0.281.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.280.0
26
+ version: 0.281.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubyzip
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -336,6 +336,8 @@ files:
336
336
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TestBase.cs
337
337
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TestExtensions.cs
338
338
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TestHttpServer.cs
339
+ - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TestLogger.cs
340
+ - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/ExpectedUpdateOperationResult.cs
339
341
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/PackagesConfigUpdaterTests.cs
340
342
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTestBase.cs
341
343
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DirsProj.cs
@@ -430,11 +432,12 @@ files:
430
432
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdaterWorker.cs
431
433
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/WebApplicationTargetsConditionPatcher.cs
432
434
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/XmlFilePreAndPostProcessor.cs
435
+ - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ConsoleLogger.cs
433
436
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/DependencyConflictResolver.cs
434
437
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/HashSetExtensions.cs
438
+ - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ILogger.cs
435
439
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ImmutableArrayExtensions.cs
436
440
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/JsonHelper.cs
437
- - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/Logger.cs
438
441
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs
439
442
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/NuGetHelper.cs
440
443
  - helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/PathHelper.cs
@@ -493,8 +496,8 @@ licenses:
493
496
  - MIT
494
497
  metadata:
495
498
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
496
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.280.0
497
- post_install_message:
499
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.281.0
500
+ post_install_message:
498
501
  rdoc_options: []
499
502
  require_paths:
500
503
  - lib
@@ -510,7 +513,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
510
513
  version: 3.1.0
511
514
  requirements: []
512
515
  rubygems_version: 3.5.9
513
- signing_key:
516
+ signing_key:
514
517
  specification_version: 4
515
518
  summary: Provides Dependabot support for .NET (NuGet)
516
519
  test_files: []
@@ -1,21 +0,0 @@
1
- namespace NuGetUpdater.Core;
2
-
3
- public sealed class Logger
4
- {
5
- public bool Verbose { get; set; }
6
- private readonly TextWriter _logOutput;
7
-
8
- public Logger(bool verbose)
9
- {
10
- Verbose = verbose;
11
- _logOutput = Console.Out;
12
- }
13
-
14
- public void Log(string message)
15
- {
16
- if (Verbose)
17
- {
18
- _logOutput.WriteLine(message);
19
- }
20
- }
21
- }