dependabot-nuget 0.323.0 → 0.325.1
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 +4 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Program.cs +0 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/AnalyzeWorker.cs +1 -31
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/DependencyFinder.cs +0 -3
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/DependencyInfo.cs +1 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/VersionFinder.cs +64 -10
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Clone/CloneWorker.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/DependencySolver/MSBuildDependencySolver.cs +10 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DiscoveryWorker.cs +4 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/PackagesConfigDiscovery.cs +2 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/SdkProjectDiscovery.cs +31 -41
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/ExperimentsManager.cs +3 -6
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/Cooldown.cs +83 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/Job.cs +2 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ModifiedFilesTracker.cs +9 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/DetailedPullRequestBodyGenerator.cs +6 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/RunWorker.cs +8 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/CreateSecurityUpdatePullRequestHandler.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/GroupUpdateAllVersionsHandler.cs +79 -67
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshGroupUpdatePullRequestHandler.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshSecurityUpdatePullRequestHandler.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshVersionUpdatePullRequestHandler.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/FileWriters/FileWriterWorker.cs +10 -7
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/FileWriters/XmlFileWriter.cs +245 -125
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/LockFileUpdater.cs +4 -11
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackageReferenceUpdater.cs +4 -5
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdaterWorker.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/DependencyConflictResolver.cs +2 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +14 -31
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/NuGetHelper.cs +3 -5
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ProcessExtensions.cs +12 -13
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/XmlExtensions.cs +3 -3
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/AnalyzeWorkerTests.cs +78 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/VersionFinderTests.cs +126 -3
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Clone/CloneWorkerTests.cs +14 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/DependencySolver/MSBuildDependencySolverTests.cs +1 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTestBase.cs +2 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Project.cs +1 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.cs +0 -6
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/SdkProjectDiscoveryTests.cs +2 -3
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/MockNuGetPackage.cs +1 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/ApiModel/CooldownTests.cs +99 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/MiscellaneousTests.cs +168 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestBodyGenerator/DetailedPullRequestBodyGeneratorTests.cs +71 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/SerializationTests.cs +71 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/GroupUpdateAllVersionsHandlerTests.cs +70 -39
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/FileWriterWorkerTests.cs +43 -30
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/XmlFileWriterTests.cs +76 -3
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/PackageReferenceUpdaterTests.cs +0 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +11 -27
- data/lib/dependabot/nuget.rb +3 -11
- metadata +8 -54
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/AnalyzeCommand.cs +0 -49
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/DiscoverCommand.cs +0 -60
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/FrameworkCheckCommand.cs +0 -35
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/UpdateCommand.cs +0 -58
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Analyze.cs +0 -380
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Discover.cs +0 -557
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.FrameworkCheck.cs +0 -37
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Update.cs +0 -226
- data/lib/dependabot/nuget/analysis/analysis_json_reader.rb +0 -65
- data/lib/dependabot/nuget/analysis/dependency_analysis.rb +0 -66
- data/lib/dependabot/nuget/cache_manager.rb +0 -29
- data/lib/dependabot/nuget/discovery/dependency_details.rb +0 -102
- data/lib/dependabot/nuget/discovery/dependency_file_discovery.rb +0 -122
- data/lib/dependabot/nuget/discovery/discovery_json_reader.rb +0 -266
- data/lib/dependabot/nuget/discovery/evaluation_details.rb +0 -63
- data/lib/dependabot/nuget/discovery/project_discovery.rb +0 -104
- data/lib/dependabot/nuget/discovery/property_details.rb +0 -43
- data/lib/dependabot/nuget/discovery/workspace_discovery.rb +0 -61
- data/lib/dependabot/nuget/file_fetcher.rb +0 -46
- data/lib/dependabot/nuget/file_parser.rb +0 -153
- data/lib/dependabot/nuget/file_updater.rb +0 -256
- data/lib/dependabot/nuget/language.rb +0 -98
- data/lib/dependabot/nuget/metadata_finder.rb +0 -197
- data/lib/dependabot/nuget/native_helpers.rb +0 -364
- data/lib/dependabot/nuget/nuget_config_credential_helpers.rb +0 -88
- data/lib/dependabot/nuget/package_manager.rb +0 -51
- data/lib/dependabot/nuget/update_checker/requirements_updater.rb +0 -105
- data/lib/dependabot/nuget/update_checker.rb +0 -210
data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/FileWriterWorkerTests.cs
CHANGED
@@ -666,22 +666,12 @@ public class FileWriterWorkerTests : TestBase
|
|
666
666
|
[Fact]
|
667
667
|
public async Task EndToEnd_GlobalJson()
|
668
668
|
{
|
669
|
-
//
|
669
|
+
// `global.json` is updated
|
670
670
|
await TestAsync(
|
671
671
|
dependencyName: "Some.MSBuild.Sdk",
|
672
672
|
oldDependencyVersion: "1.0.0",
|
673
673
|
newDependencyVersion: "1.1.0",
|
674
|
-
|
675
|
-
<Project Sdk="Microsoft.NET.Sdk">
|
676
|
-
<PropertyGroup>
|
677
|
-
<TargetFramework>net9.0</TargetFramework>
|
678
|
-
</PropertyGroup>
|
679
|
-
<ItemGroup>
|
680
|
-
<PackageReference Include="Some.Dependency" Version="1.0.0" />
|
681
|
-
</ItemGroup>
|
682
|
-
</Project>
|
683
|
-
""",
|
684
|
-
additionalFiles: [
|
674
|
+
files: [
|
685
675
|
("global.json", """
|
686
676
|
{
|
687
677
|
"sdk": {
|
@@ -702,17 +692,7 @@ public class FileWriterWorkerTests : TestBase
|
|
702
692
|
discoveryWorker: null, // use real worker
|
703
693
|
dependencySolver: null, // use real worker
|
704
694
|
fileWriter: null, // use real worker
|
705
|
-
|
706
|
-
<Project Sdk="Microsoft.NET.Sdk">
|
707
|
-
<PropertyGroup>
|
708
|
-
<TargetFramework>net9.0</TargetFramework>
|
709
|
-
</PropertyGroup>
|
710
|
-
<ItemGroup>
|
711
|
-
<PackageReference Include="Some.Dependency" Version="1.0.0" />
|
712
|
-
</ItemGroup>
|
713
|
-
</Project>
|
714
|
-
""",
|
715
|
-
expectedAdditionalFiles: [
|
695
|
+
expectedFiles: [
|
716
696
|
("global.json", """
|
717
697
|
{
|
718
698
|
"sdk": {
|
@@ -871,11 +851,46 @@ public class FileWriterWorkerTests : TestBase
|
|
871
851
|
ExperimentsManager? experimentsManager = null,
|
872
852
|
Action<DirectoryInfo>? additionalChecks = null
|
873
853
|
)
|
854
|
+
{
|
855
|
+
var files = new List<(string name, string contents)> { (projectName, projectContents) };
|
856
|
+
files.AddRange(additionalFiles);
|
857
|
+
|
858
|
+
var expectedFiles = new List<(string Path, string Contents)>() { (projectName, expectedProjectContents) };
|
859
|
+
expectedFiles.AddRange(expectedAdditionalFiles);
|
860
|
+
|
861
|
+
await TestAsync(
|
862
|
+
dependencyName,
|
863
|
+
oldDependencyVersion,
|
864
|
+
newDependencyVersion,
|
865
|
+
[.. files],
|
866
|
+
discoveryWorker,
|
867
|
+
dependencySolver,
|
868
|
+
fileWriter,
|
869
|
+
[.. expectedFiles],
|
870
|
+
expectedOperations,
|
871
|
+
packages,
|
872
|
+
experimentsManager,
|
873
|
+
additionalChecks
|
874
|
+
);
|
875
|
+
}
|
876
|
+
|
877
|
+
private static async Task TestAsync(
|
878
|
+
string dependencyName,
|
879
|
+
string oldDependencyVersion,
|
880
|
+
string newDependencyVersion,
|
881
|
+
(string name, string contents)[] files,
|
882
|
+
IDiscoveryWorker? discoveryWorker,
|
883
|
+
IDependencySolver? dependencySolver,
|
884
|
+
IFileWriter? fileWriter,
|
885
|
+
(string name, string contents)[] expectedFiles,
|
886
|
+
UpdateOperationBase[] expectedOperations,
|
887
|
+
MockNuGetPackage[]? packages = null,
|
888
|
+
ExperimentsManager? experimentsManager = null,
|
889
|
+
Action<DirectoryInfo>? additionalChecks = null
|
890
|
+
)
|
874
891
|
{
|
875
892
|
// arrange
|
876
|
-
var
|
877
|
-
allFiles.AddRange(additionalFiles);
|
878
|
-
using var tempDir = await TemporaryDirectory.CreateWithContentsAsync([.. allFiles]);
|
893
|
+
using var tempDir = await TemporaryDirectory.CreateWithContentsAsync(files);
|
879
894
|
await UpdateWorkerTestBase.MockNuGetPackagesInDirectory(packages, tempDir.DirectoryPath);
|
880
895
|
|
881
896
|
var jobId = "TEST-JOB-ID";
|
@@ -883,8 +898,8 @@ public class FileWriterWorkerTests : TestBase
|
|
883
898
|
experimentsManager ??= new ExperimentsManager();
|
884
899
|
discoveryWorker ??= new DiscoveryWorker(jobId, experimentsManager, logger);
|
885
900
|
var repoContentsPath = new DirectoryInfo(tempDir.DirectoryPath);
|
886
|
-
var projectPath = new FileInfo(Path.Combine(tempDir.DirectoryPath,
|
887
|
-
dependencySolver ??= new MSBuildDependencySolver(repoContentsPath, projectPath,
|
901
|
+
var projectPath = new FileInfo(Path.Combine(tempDir.DirectoryPath, files.First().name));
|
902
|
+
dependencySolver ??= new MSBuildDependencySolver(repoContentsPath, projectPath, logger);
|
888
903
|
fileWriter ??= new XmlFileWriter(logger);
|
889
904
|
|
890
905
|
var fileWriterWorker = new FileWriterWorker(discoveryWorker, dependencySolver, fileWriter, logger);
|
@@ -903,8 +918,6 @@ public class FileWriterWorkerTests : TestBase
|
|
903
918
|
var expectedUpdateOperationsJson = expectedOperations.Select(o => JsonSerializer.Serialize(o, RunWorker.SerializerOptions)).ToArray();
|
904
919
|
AssertEx.Equal(expectedUpdateOperationsJson, actualUpdateOperationsJson);
|
905
920
|
|
906
|
-
var expectedFiles = new List<(string Path, string Contents)>() { (projectName, expectedProjectContents) };
|
907
|
-
expectedFiles.AddRange(expectedAdditionalFiles);
|
908
921
|
foreach (var (path, expectedContents) in expectedFiles)
|
909
922
|
{
|
910
923
|
var fullPath = Path.Join(tempDir.DirectoryPath, path);
|
data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/XmlFileWriterTests.cs
CHANGED
@@ -1232,6 +1232,30 @@ public class XmlFileWriterTests : FileWriterTestsBase
|
|
1232
1232
|
);
|
1233
1233
|
}
|
1234
1234
|
|
1235
|
+
[Fact]
|
1236
|
+
public async Task SingleDependency_SingleFile_TransitiveIsPinnedInNewElement()
|
1237
|
+
{
|
1238
|
+
await TestAsync(
|
1239
|
+
files: [
|
1240
|
+
("project.csproj", """
|
1241
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
1242
|
+
</Project>
|
1243
|
+
""")
|
1244
|
+
],
|
1245
|
+
initialProjectDependencyStrings: ["Transitive.Dependency/2.0.0"],
|
1246
|
+
requiredDependencyStrings: ["Transitive.Dependency/3.0.0"],
|
1247
|
+
expectedFiles: [
|
1248
|
+
("project.csproj", """
|
1249
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
1250
|
+
<ItemGroup>
|
1251
|
+
<PackageReference Include="Transitive.Dependency" Version="3.0.0" />
|
1252
|
+
</ItemGroup>
|
1253
|
+
</Project>
|
1254
|
+
""")
|
1255
|
+
]
|
1256
|
+
);
|
1257
|
+
}
|
1258
|
+
|
1235
1259
|
[Fact]
|
1236
1260
|
public async Task SingleDependency_CentralPackageManagement_TransitiveIsPinned_ExistingPackageVersionElement_AlreadyCorrect()
|
1237
1261
|
{
|
@@ -1491,7 +1515,9 @@ public class XmlFileWriterTests : FileWriterTestsBase
|
|
1491
1515
|
<ItemGroup>
|
1492
1516
|
|
1493
1517
|
|
1494
|
-
<PackageReference
|
1518
|
+
<PackageReference
|
1519
|
+
Include="Some.Dependency"
|
1520
|
+
Version="1.0.0" UnrelatedAttribute="arrow->is->not->replaced" />
|
1495
1521
|
|
1496
1522
|
</ItemGroup>
|
1497
1523
|
</Project>
|
@@ -1506,7 +1532,9 @@ public class XmlFileWriterTests : FileWriterTestsBase
|
|
1506
1532
|
<ItemGroup>
|
1507
1533
|
|
1508
1534
|
|
1509
|
-
<PackageReference
|
1535
|
+
<PackageReference
|
1536
|
+
Include="Some.Dependency"
|
1537
|
+
Version="2.0.0" UnrelatedAttribute="arrow->is->not->replaced" />
|
1510
1538
|
|
1511
1539
|
</ItemGroup>
|
1512
1540
|
</Project>
|
@@ -1515,6 +1543,51 @@ public class XmlFileWriterTests : FileWriterTestsBase
|
|
1515
1543
|
);
|
1516
1544
|
}
|
1517
1545
|
|
1546
|
+
[Fact]
|
1547
|
+
public async Task FormattingIsPreserved_WhenNoChangesAreMade()
|
1548
|
+
{
|
1549
|
+
await TestAsync(
|
1550
|
+
files: [
|
1551
|
+
("project.csproj", """
|
1552
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
1553
|
+
<ItemGroup>
|
1554
|
+
<PackageReference Include="Some.Dependency" Version="1.0.0" />
|
1555
|
+
</ItemGroup>
|
1556
|
+
</Project>
|
1557
|
+
"""),
|
1558
|
+
("UnrelatedFile.props", """
|
1559
|
+
<Project>
|
1560
|
+
<Target Name="MyTarget"
|
1561
|
+
BeforeTargets="SomeBeforeTargets"
|
1562
|
+
AfterTargets="SomeAfterTargets">
|
1563
|
+
<Message Text="no space before tag close->"/>
|
1564
|
+
</Target>
|
1565
|
+
</Project>
|
1566
|
+
"""),
|
1567
|
+
],
|
1568
|
+
initialProjectDependencyStrings: ["Some.Dependency/1.0.0"],
|
1569
|
+
requiredDependencyStrings: ["Some.Dependency/2.0.0"],
|
1570
|
+
expectedFiles: [
|
1571
|
+
("project.csproj", """
|
1572
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
1573
|
+
<ItemGroup>
|
1574
|
+
<PackageReference Include="Some.Dependency" Version="2.0.0" />
|
1575
|
+
</ItemGroup>
|
1576
|
+
</Project>
|
1577
|
+
"""),
|
1578
|
+
("UnrelatedFile.props", """
|
1579
|
+
<Project>
|
1580
|
+
<Target Name="MyTarget"
|
1581
|
+
BeforeTargets="SomeBeforeTargets"
|
1582
|
+
AfterTargets="SomeAfterTargets">
|
1583
|
+
<Message Text="no space before tag close->"/>
|
1584
|
+
</Target>
|
1585
|
+
</Project>
|
1586
|
+
"""),
|
1587
|
+
]
|
1588
|
+
);
|
1589
|
+
}
|
1590
|
+
|
1518
1591
|
[Fact]
|
1519
1592
|
public async Task FormattingIsPreserved_CommentsArePreserved_WhenInsertingAtFirstOfList()
|
1520
1593
|
{
|
@@ -1535,8 +1608,8 @@ public class XmlFileWriterTests : FileWriterTestsBase
|
|
1535
1608
|
("project.csproj", """
|
1536
1609
|
<Project Sdk="Microsoft.NET.Sdk">
|
1537
1610
|
<ItemGroup>
|
1538
|
-
<PackageReference Include="Some.Dependency" Version="2.0.0" />
|
1539
1611
|
<!-- some comment -->
|
1612
|
+
<PackageReference Include="Some.Dependency" Version="2.0.0" />
|
1540
1613
|
<PackageReference Include="Unrelated.Dependency" Version="3.0.0" />
|
1541
1614
|
</ItemGroup>
|
1542
1615
|
</Project>
|
@@ -24,7 +24,6 @@ public class PackageReferenceUpdaterTests
|
|
24
24
|
// arrange
|
25
25
|
using var repoRoot = await TemporaryDirectory.CreateWithContentsAsync(("project.csproj", "<Project Sdk=\"Microsoft.NET.Sdk\" />"));
|
26
26
|
var projectPath = Path.Combine(repoRoot.DirectoryPath, "project.csproj");
|
27
|
-
var experimentsManager = new ExperimentsManager();
|
28
27
|
await UpdateWorkerTestBase.MockNuGetPackagesInDirectory([
|
29
28
|
MockNuGetPackage.CreateSimplePackage("Parent.Package", "1.0.0", "net9.0", [(null, [("Transitive.Package", "1.0.0")])]),
|
30
29
|
MockNuGetPackage.CreateSimplePackage("Parent.Package", "2.0.0", "net9.0", [(null, [("Transitive.Package", "2.0.0")])]),
|
@@ -43,7 +42,6 @@ public class PackageReferenceUpdaterTests
|
|
43
42
|
topLevelDependencies,
|
44
43
|
requestedUpdates,
|
45
44
|
resolvedDependencies,
|
46
|
-
experimentsManager,
|
47
45
|
new TestLogger());
|
48
46
|
|
49
47
|
// assert
|
@@ -12,10 +12,8 @@ using TestFile = (string Path, string Content);
|
|
12
12
|
|
13
13
|
public class MSBuildHelperTests : TestBase
|
14
14
|
{
|
15
|
-
[
|
16
|
-
|
17
|
-
[InlineData(false)]
|
18
|
-
public async Task AllPackageDependenciesCanBeTraversed(bool useExistingSdks)
|
15
|
+
[Fact]
|
16
|
+
public async Task AllPackageDependenciesCanBeTraversed()
|
19
17
|
{
|
20
18
|
using var temp = new TemporaryDirectory();
|
21
19
|
MockNuGetPackage[] testPackages =
|
@@ -39,16 +37,13 @@ public class MSBuildHelperTests : TestBase
|
|
39
37
|
temp.DirectoryPath,
|
40
38
|
"netstandard2.0",
|
41
39
|
[new Dependency("Package.A", "1.0.0", DependencyType.Unknown)],
|
42
|
-
new ExperimentsManager() { InstallDotnetSdks = useExistingSdks },
|
43
40
|
new TestLogger()
|
44
41
|
);
|
45
42
|
AssertEx.Equal(expectedDependencies, actualDependencies);
|
46
43
|
}
|
47
44
|
|
48
|
-
[
|
49
|
-
|
50
|
-
[InlineData(false)]
|
51
|
-
public async Task AllPackageDependencies_DoNotTruncateLongDependencyLists(bool useExistingSdks)
|
45
|
+
[Fact]
|
46
|
+
public async Task AllPackageDependencies_DoNotTruncateLongDependencyLists()
|
52
47
|
{
|
53
48
|
using var temp = new TemporaryDirectory();
|
54
49
|
MockNuGetPackage[] testPackages =
|
@@ -175,7 +170,6 @@ public class MSBuildHelperTests : TestBase
|
|
175
170
|
temp.DirectoryPath,
|
176
171
|
"net8.0",
|
177
172
|
packages,
|
178
|
-
new ExperimentsManager() { InstallDotnetSdks = useExistingSdks },
|
179
173
|
new TestLogger()
|
180
174
|
);
|
181
175
|
for (int i = 0; i < actualDependencies.Length; i++)
|
@@ -188,10 +182,8 @@ public class MSBuildHelperTests : TestBase
|
|
188
182
|
AssertEx.Equal(expectedDependencies, actualDependencies);
|
189
183
|
}
|
190
184
|
|
191
|
-
[
|
192
|
-
|
193
|
-
[InlineData(false)]
|
194
|
-
public async Task AllPackageDependencies_DoNotIncludeUpdateOnlyPackages(bool useExistingSdks)
|
185
|
+
[Fact]
|
186
|
+
public async Task AllPackageDependencies_DoNotIncludeUpdateOnlyPackages()
|
195
187
|
{
|
196
188
|
using var temp = new TemporaryDirectory();
|
197
189
|
MockNuGetPackage[] testPackages =
|
@@ -218,16 +210,13 @@ public class MSBuildHelperTests : TestBase
|
|
218
210
|
temp.DirectoryPath,
|
219
211
|
"net8.0",
|
220
212
|
packages,
|
221
|
-
new ExperimentsManager() { InstallDotnetSdks = useExistingSdks },
|
222
213
|
new TestLogger()
|
223
214
|
);
|
224
215
|
AssertEx.Equal(expectedDependencies, actualDependencies);
|
225
216
|
}
|
226
217
|
|
227
|
-
[
|
228
|
-
|
229
|
-
[InlineData(false)]
|
230
|
-
public async Task GetAllPackageDependencies_NugetConfigInvalid_DoesNotThrow(bool useExistingSdks)
|
218
|
+
[Fact]
|
219
|
+
public async Task GetAllPackageDependencies_NugetConfigInvalid_DoesNotThrow()
|
231
220
|
{
|
232
221
|
using var temp = new TemporaryDirectory();
|
233
222
|
|
@@ -249,15 +238,12 @@ public class MSBuildHelperTests : TestBase
|
|
249
238
|
temp.DirectoryPath,
|
250
239
|
"net8.0",
|
251
240
|
[new Dependency("Some.Package", "4.5.11", DependencyType.Unknown)],
|
252
|
-
new ExperimentsManager() { InstallDotnetSdks = useExistingSdks },
|
253
241
|
new TestLogger()
|
254
242
|
);
|
255
243
|
}
|
256
244
|
|
257
|
-
[
|
258
|
-
|
259
|
-
[InlineData(false)]
|
260
|
-
public async Task LocalPackageSourcesAreHonored(bool useExistingSdks)
|
245
|
+
[Fact]
|
246
|
+
public async Task LocalPackageSourcesAreHonored()
|
261
247
|
{
|
262
248
|
using var temp = new TemporaryDirectory();
|
263
249
|
|
@@ -292,7 +278,6 @@ public class MSBuildHelperTests : TestBase
|
|
292
278
|
temp.DirectoryPath,
|
293
279
|
"net8.0",
|
294
280
|
[new Dependency("Package.A", "1.0.0", DependencyType.Unknown)],
|
295
|
-
new ExperimentsManager() { InstallDotnetSdks = useExistingSdks },
|
296
281
|
new TestLogger()
|
297
282
|
);
|
298
283
|
|
@@ -310,9 +295,8 @@ public class MSBuildHelperTests : TestBase
|
|
310
295
|
("project.csproj", projectContents)
|
311
296
|
]);
|
312
297
|
var projectPath = Path.Combine(tempDir.DirectoryPath, "project.csproj");
|
313
|
-
var experimentsManager = new ExperimentsManager();
|
314
298
|
var logger = new TestLogger();
|
315
|
-
var actualTfms = await MSBuildHelper.GetTargetFrameworkValuesFromProject(tempDir.DirectoryPath, projectPath,
|
299
|
+
var actualTfms = await MSBuildHelper.GetTargetFrameworkValuesFromProject(tempDir.DirectoryPath, projectPath, logger);
|
316
300
|
AssertEx.Equal(expectedTfms, actualTfms);
|
317
301
|
}
|
318
302
|
|
data/lib/dependabot/nuget.rb
CHANGED
@@ -1,20 +1,12 @@
|
|
1
1
|
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
# These
|
5
|
-
#
|
6
|
-
|
7
|
-
require "dependabot/nuget/file_parser"
|
8
|
-
require "dependabot/nuget/update_checker"
|
9
|
-
require "dependabot/nuget/file_updater"
|
10
|
-
require "dependabot/nuget/metadata_finder"
|
4
|
+
# These files are part of the Dependabot Core library, which provides
|
5
|
+
# functionality for managing dependencies across various ecosystems.
|
6
|
+
# This file specifically handles the NuGet package management system.
|
11
7
|
require "dependabot/nuget/requirement"
|
12
8
|
require "dependabot/nuget/version"
|
13
9
|
|
14
|
-
require "dependabot/pull_request_creator/labeler"
|
15
|
-
Dependabot::PullRequestCreator::Labeler
|
16
|
-
.register_label_details("nuget", name: ".NET", colour: "7121c6")
|
17
|
-
|
18
10
|
require "dependabot/dependency"
|
19
11
|
Dependabot::Dependency.register_production_check(
|
20
12
|
"nuget",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dependabot-nuget
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.325.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
@@ -15,34 +15,14 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - '='
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 0.
|
18
|
+
version: 0.325.1
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - '='
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 0.
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: rubyzip
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
29
|
-
requirements:
|
30
|
-
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 2.3.2
|
33
|
-
- - "<"
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version: '3.0'
|
36
|
-
type: :runtime
|
37
|
-
prerelease: false
|
38
|
-
version_requirements: !ruby/object:Gem::Requirement
|
39
|
-
requirements:
|
40
|
-
- - ">="
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: 2.3.2
|
43
|
-
- - "<"
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '3.0'
|
25
|
+
version: 0.325.1
|
46
26
|
- !ruby/object:Gem::Dependency
|
47
27
|
name: debug
|
48
28
|
requirement: !ruby/object:Gem::Requirement
|
@@ -203,14 +183,14 @@ dependencies:
|
|
203
183
|
requirements:
|
204
184
|
- - "~>"
|
205
185
|
- !ruby/object:Gem::Version
|
206
|
-
version:
|
186
|
+
version: 2.2.5
|
207
187
|
type: :development
|
208
188
|
prerelease: false
|
209
189
|
version_requirements: !ruby/object:Gem::Requirement
|
210
190
|
requirements:
|
211
191
|
- - "~>"
|
212
192
|
- !ruby/object:Gem::Version
|
213
|
-
version:
|
193
|
+
version: 2.2.5
|
214
194
|
- !ruby/object:Gem::Dependency
|
215
195
|
name: vcr
|
216
196
|
requirement: !ruby/object:Gem::Requirement
|
@@ -305,18 +285,10 @@ files:
|
|
305
285
|
- helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Resolver/NuGet.Resolver.csproj
|
306
286
|
- helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Versioning/NuGet.Versioning.csproj
|
307
287
|
- helpers/lib/NuGetUpdater/NuGetProjects/README.md
|
308
|
-
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Analyze.cs
|
309
|
-
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Discover.cs
|
310
|
-
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.FrameworkCheck.cs
|
311
288
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Run.cs
|
312
|
-
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Update.cs
|
313
289
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/NuGetUpdater.Cli.Test.csproj
|
314
|
-
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/AnalyzeCommand.cs
|
315
290
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/CloneCommand.cs
|
316
|
-
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/DiscoverCommand.cs
|
317
|
-
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/FrameworkCheckCommand.cs
|
318
291
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/RunCommand.cs
|
319
|
-
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/UpdateCommand.cs
|
320
292
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli/NuGetUpdater.Cli.csproj
|
321
293
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Program.cs
|
322
294
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/AnalyzeWorkerTestBase.cs
|
@@ -347,6 +319,7 @@ files:
|
|
347
319
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/FrameworkChecker/SupportedFrameworkFacts.cs
|
348
320
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/MockNuGetPackage.cs
|
349
321
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/NuGetUpdater.Core.Test.csproj
|
322
|
+
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/ApiModel/CooldownTests.cs
|
350
323
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/ApiModel/JobTests.cs
|
351
324
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/EndToEndTests.cs
|
352
325
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/HttpApiHandlerTests.cs
|
@@ -469,6 +442,7 @@ files:
|
|
469
442
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/ClosePullRequest.cs
|
470
443
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/CommitOptions.cs
|
471
444
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/Condition.cs
|
445
|
+
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/Cooldown.cs
|
472
446
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/CreatePullRequest.cs
|
473
447
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/DependencyFile.cs
|
474
448
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/DependencyFileNotFound.cs
|
@@ -570,34 +544,14 @@ files:
|
|
570
544
|
- helpers/lib/NuGetUpdater/global.json
|
571
545
|
- helpers/lib/NuGetUpdater/xunit.runner.json
|
572
546
|
- lib/dependabot/nuget.rb
|
573
|
-
- lib/dependabot/nuget/analysis/analysis_json_reader.rb
|
574
|
-
- lib/dependabot/nuget/analysis/dependency_analysis.rb
|
575
|
-
- lib/dependabot/nuget/cache_manager.rb
|
576
|
-
- lib/dependabot/nuget/discovery/dependency_details.rb
|
577
|
-
- lib/dependabot/nuget/discovery/dependency_file_discovery.rb
|
578
|
-
- lib/dependabot/nuget/discovery/discovery_json_reader.rb
|
579
|
-
- lib/dependabot/nuget/discovery/evaluation_details.rb
|
580
|
-
- lib/dependabot/nuget/discovery/project_discovery.rb
|
581
|
-
- lib/dependabot/nuget/discovery/property_details.rb
|
582
|
-
- lib/dependabot/nuget/discovery/workspace_discovery.rb
|
583
|
-
- lib/dependabot/nuget/file_fetcher.rb
|
584
|
-
- lib/dependabot/nuget/file_parser.rb
|
585
|
-
- lib/dependabot/nuget/file_updater.rb
|
586
|
-
- lib/dependabot/nuget/language.rb
|
587
|
-
- lib/dependabot/nuget/metadata_finder.rb
|
588
|
-
- lib/dependabot/nuget/native_helpers.rb
|
589
|
-
- lib/dependabot/nuget/nuget_config_credential_helpers.rb
|
590
|
-
- lib/dependabot/nuget/package_manager.rb
|
591
547
|
- lib/dependabot/nuget/requirement.rb
|
592
|
-
- lib/dependabot/nuget/update_checker.rb
|
593
|
-
- lib/dependabot/nuget/update_checker/requirements_updater.rb
|
594
548
|
- lib/dependabot/nuget/version.rb
|
595
549
|
homepage: https://github.com/dependabot/dependabot-core
|
596
550
|
licenses:
|
597
551
|
- MIT
|
598
552
|
metadata:
|
599
553
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
600
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
554
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.325.1
|
601
555
|
rdoc_options: []
|
602
556
|
require_paths:
|
603
557
|
- lib
|
@@ -1,49 +0,0 @@
|
|
1
|
-
using System.CommandLine;
|
2
|
-
|
3
|
-
using NuGetUpdater.Core;
|
4
|
-
using NuGetUpdater.Core.Analyze;
|
5
|
-
|
6
|
-
namespace NuGetUpdater.Cli.Commands;
|
7
|
-
|
8
|
-
internal static class AnalyzeCommand
|
9
|
-
{
|
10
|
-
internal static readonly Option<string> JobIdOption = new("--job-id") { Required = true };
|
11
|
-
internal static readonly Option<FileInfo> JobPathOption = new("--job-path") { Required = true };
|
12
|
-
internal static readonly Option<DirectoryInfo> RepoRootOption = new("--repo-root") { Required = true };
|
13
|
-
internal static readonly Option<FileInfo> DependencyFilePathOption = new("--dependency-file-path") { Required = true };
|
14
|
-
internal static readonly Option<FileInfo> DiscoveryFilePathOption = new("--discovery-file-path") { Required = true };
|
15
|
-
internal static readonly Option<DirectoryInfo> AnalysisFolderOption = new("--analysis-folder-path") { Required = true };
|
16
|
-
|
17
|
-
internal static Command GetCommand(Action<int> setExitCode)
|
18
|
-
{
|
19
|
-
Command command = new("analyze", "Determines how to update a dependency based on the workspace discovery information.")
|
20
|
-
{
|
21
|
-
JobIdOption,
|
22
|
-
JobPathOption,
|
23
|
-
RepoRootOption,
|
24
|
-
DependencyFilePathOption,
|
25
|
-
DiscoveryFilePathOption,
|
26
|
-
AnalysisFolderOption
|
27
|
-
};
|
28
|
-
|
29
|
-
command.TreatUnmatchedTokensAsErrors = true;
|
30
|
-
|
31
|
-
command.SetAction(async (parseResult, cancellationToken) =>
|
32
|
-
{
|
33
|
-
var jobId = parseResult.GetValue(JobIdOption);
|
34
|
-
var jobPath = parseResult.GetValue(JobPathOption);
|
35
|
-
var repoRoot = parseResult.GetValue(RepoRootOption);
|
36
|
-
var discoveryPath = parseResult.GetValue(DiscoveryFilePathOption);
|
37
|
-
var dependencyPath = parseResult.GetValue(DependencyFilePathOption);
|
38
|
-
var analysisDirectory = parseResult.GetValue(AnalysisFolderOption);
|
39
|
-
|
40
|
-
var logger = new OpenTelemetryLogger();
|
41
|
-
var (experimentsManager, _errorResult) = await ExperimentsManager.FromJobFileAsync(jobId!, jobPath!.FullName);
|
42
|
-
var worker = new AnalyzeWorker(jobId!, experimentsManager, logger);
|
43
|
-
await worker.RunAsync(repoRoot!.FullName, discoveryPath!.FullName, dependencyPath!.FullName, analysisDirectory!.FullName);
|
44
|
-
return 0;
|
45
|
-
});
|
46
|
-
|
47
|
-
return command;
|
48
|
-
}
|
49
|
-
}
|
@@ -1,60 +0,0 @@
|
|
1
|
-
using System.CommandLine;
|
2
|
-
|
3
|
-
using NuGetUpdater.Core;
|
4
|
-
using NuGetUpdater.Core.Discover;
|
5
|
-
|
6
|
-
namespace NuGetUpdater.Cli.Commands;
|
7
|
-
|
8
|
-
internal static class DiscoverCommand
|
9
|
-
{
|
10
|
-
internal static readonly Option<string> JobIdOption = new("--job-id") { Required = true };
|
11
|
-
internal static readonly Option<FileInfo> JobPathOption = new("--job-path") { Required = true };
|
12
|
-
internal static readonly Option<DirectoryInfo> RepoRootOption = new("--repo-root") { Required = true };
|
13
|
-
internal static readonly Option<string> WorkspaceOption = new("--workspace") { Required = true };
|
14
|
-
internal static readonly Option<FileInfo> OutputOption = new("--output") { Required = true };
|
15
|
-
|
16
|
-
internal static Command GetCommand(Action<int> setExitCode)
|
17
|
-
{
|
18
|
-
Command command = new("discover", "Generates a report of the workspace dependencies and where they are located.")
|
19
|
-
{
|
20
|
-
JobIdOption,
|
21
|
-
JobPathOption,
|
22
|
-
RepoRootOption,
|
23
|
-
WorkspaceOption,
|
24
|
-
OutputOption
|
25
|
-
};
|
26
|
-
|
27
|
-
command.TreatUnmatchedTokensAsErrors = true;
|
28
|
-
|
29
|
-
command.SetAction(async (parseResult, cancellationToken) =>
|
30
|
-
{
|
31
|
-
var jobId = parseResult.GetValue(JobIdOption);
|
32
|
-
var jobPath = parseResult.GetValue(JobPathOption);
|
33
|
-
var repoRoot = parseResult.GetValue(RepoRootOption);
|
34
|
-
var workspace = parseResult.GetValue(WorkspaceOption);
|
35
|
-
var outputPath = parseResult.GetValue(OutputOption);
|
36
|
-
|
37
|
-
var logger = new OpenTelemetryLogger();
|
38
|
-
MSBuildHelper.RegisterMSBuild(repoRoot!.FullName, repoRoot.FullName, logger);
|
39
|
-
var (experimentsManager, error) = await ExperimentsManager.FromJobFileAsync(jobId!, jobPath!.FullName);
|
40
|
-
if (error is not null)
|
41
|
-
{
|
42
|
-
// to make testing easier, this should be a `WorkspaceDiscoveryResult` object
|
43
|
-
var discoveryErrorResult = new WorkspaceDiscoveryResult
|
44
|
-
{
|
45
|
-
Error = error,
|
46
|
-
Path = workspace!,
|
47
|
-
Projects = [],
|
48
|
-
};
|
49
|
-
await DiscoveryWorker.WriteResultsAsync(repoRoot.FullName, outputPath!.FullName, discoveryErrorResult);
|
50
|
-
return 0;
|
51
|
-
}
|
52
|
-
|
53
|
-
var worker = new DiscoveryWorker(jobId!, experimentsManager, logger);
|
54
|
-
await worker.RunAsync(repoRoot.FullName, workspace!, outputPath!.FullName);
|
55
|
-
return 0;
|
56
|
-
});
|
57
|
-
|
58
|
-
return command;
|
59
|
-
}
|
60
|
-
}
|
@@ -1,35 +0,0 @@
|
|
1
|
-
using System.CommandLine;
|
2
|
-
|
3
|
-
using NuGetUpdater.Core;
|
4
|
-
using NuGetUpdater.Core.FrameworkChecker;
|
5
|
-
|
6
|
-
namespace NuGetUpdater.Cli.Commands;
|
7
|
-
|
8
|
-
internal static class FrameworkCheckCommand
|
9
|
-
{
|
10
|
-
internal static readonly Option<string[]> ProjectTfmsOption = new("--project-tfms") { Required = true, AllowMultipleArgumentsPerToken = true };
|
11
|
-
internal static readonly Option<string[]> PackageTfmsOption = new("--package-tfms") { Required = true, AllowMultipleArgumentsPerToken = true };
|
12
|
-
|
13
|
-
internal static Command GetCommand(Action<int> setExitCode)
|
14
|
-
{
|
15
|
-
Command command = new("framework-check", "Checks that a project's target frameworks are satisfied by the target frameworks supported by a package.")
|
16
|
-
{
|
17
|
-
ProjectTfmsOption,
|
18
|
-
PackageTfmsOption
|
19
|
-
};
|
20
|
-
|
21
|
-
command.TreatUnmatchedTokensAsErrors = true;
|
22
|
-
|
23
|
-
command.SetAction((parseResult) =>
|
24
|
-
{
|
25
|
-
var projectTfms = parseResult.GetValue(ProjectTfmsOption);
|
26
|
-
var packageTfms = parseResult.GetValue(PackageTfmsOption);
|
27
|
-
|
28
|
-
setExitCode(CompatibilityChecker.IsCompatible(projectTfms!, packageTfms!, new ConsoleLogger())
|
29
|
-
? 0
|
30
|
-
: 1);
|
31
|
-
});
|
32
|
-
|
33
|
-
return command;
|
34
|
-
}
|
35
|
-
}
|