dependabot-nuget 0.295.0 → 0.296.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.Core/Analyze/AnalyzeWorker.cs +2 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/CompatabilityChecker.cs +6 -7
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/VersionFinder.cs +29 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/VersionResult.cs +7 -10
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/DependencyDiscovery.props +2 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/ExperimentsManager.cs +6 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/ClosePullRequest.cs +12 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/PullRequestExistsForLatestVersion.cs +11 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/SecurityUpdateNotNeeded.cs +10 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/UpdatePullRequest.cs +28 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/HttpApiHandler.cs +5 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/IApiHandler.cs +1 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/RunWorker.cs +106 -64
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/TargetFrameworkReporter.targets +1 -6
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/DependencyConflictResolver.cs +5 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +54 -36
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/PathComparer.cs +13 -6
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/VersionFinderTests.cs +33 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Project.cs +8 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/MiscellaneousTests.cs +175 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/RunWorkerTests.cs +21 -21
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/SerializationTests.cs +99 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/TestApiHandler.cs +6 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdatedDependencyListTests.cs +10 -10
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +107 -0
- metadata +9 -5
@@ -227,6 +227,36 @@ public class SerializationTests
|
|
227
227
|
Assert.False(experimentsManager.UseDirectDiscovery);
|
228
228
|
}
|
229
229
|
|
230
|
+
[Fact]
|
231
|
+
public void DeserializeExperimentsManager_AlternateNames()
|
232
|
+
{
|
233
|
+
// experiment names can be either snake case or kebab case
|
234
|
+
var jobWrapper = RunWorker.Deserialize("""
|
235
|
+
{
|
236
|
+
"job": {
|
237
|
+
"package-manager": "nuget",
|
238
|
+
"allowed-updates": [
|
239
|
+
{
|
240
|
+
"update-type": "all"
|
241
|
+
}
|
242
|
+
],
|
243
|
+
"source": {
|
244
|
+
"provider": "github",
|
245
|
+
"repo": "some-org/some-repo",
|
246
|
+
"directory": "some-dir"
|
247
|
+
},
|
248
|
+
"experiments": {
|
249
|
+
"nuget-legacy-dependency-solver": true,
|
250
|
+
"nuget-use-direct-discovery": true
|
251
|
+
}
|
252
|
+
}
|
253
|
+
}
|
254
|
+
""");
|
255
|
+
var experimentsManager = ExperimentsManager.GetExperimentsManager(jobWrapper.Job.Experiments);
|
256
|
+
Assert.True(experimentsManager.UseLegacyDependencySolver);
|
257
|
+
Assert.True(experimentsManager.UseDirectDiscovery);
|
258
|
+
}
|
259
|
+
|
230
260
|
[Theory]
|
231
261
|
[MemberData(nameof(DeserializeErrorTypesData))]
|
232
262
|
public void SerializeError(JobErrorBase error, string expectedSerialization)
|
@@ -511,6 +541,59 @@ public class SerializationTests
|
|
511
541
|
Assert.True(jobWrapper.Job.CommitMessageOptions!.IncludeScope);
|
512
542
|
}
|
513
543
|
|
544
|
+
[Fact]
|
545
|
+
public void SerializeClosePullRequest()
|
546
|
+
{
|
547
|
+
var close = new ClosePullRequest()
|
548
|
+
{
|
549
|
+
DependencyNames = ["dep"],
|
550
|
+
};
|
551
|
+
var actual = HttpApiHandler.Serialize(close);
|
552
|
+
var expected = """
|
553
|
+
{"data":{"dependency-names":["dep"],"reason":"up_to_date"}}
|
554
|
+
""";
|
555
|
+
Assert.Equal(expected, actual);
|
556
|
+
}
|
557
|
+
|
558
|
+
[Fact]
|
559
|
+
public void SerializeCreatePullRequest()
|
560
|
+
{
|
561
|
+
var create = new CreatePullRequest()
|
562
|
+
{
|
563
|
+
Dependencies = [new() { Name = "dep", Version = "ver2", PreviousVersion = "ver1", Requirements = [new() { Requirement = "ver2", File = "project.csproj" }], PreviousRequirements = [new() { Requirement = "ver1", File = "project.csproj" }] }],
|
564
|
+
UpdatedDependencyFiles = [new() { Name = "project.csproj", Directory = "/", Content = "updated content" }],
|
565
|
+
BaseCommitSha = "TEST-COMMIT-SHA",
|
566
|
+
CommitMessage = "commit message",
|
567
|
+
PrTitle = "pr title",
|
568
|
+
PrBody = "pr body"
|
569
|
+
};
|
570
|
+
var actual = HttpApiHandler.Serialize(create);
|
571
|
+
var expected = """
|
572
|
+
{"data":{"dependencies":[{"name":"dep","version":"ver2","requirements":[{"requirement":"ver2","file":"project.csproj","groups":[],"source":null}],"previous-version":"ver1","previous-requirements":[{"requirement":"ver1","file":"project.csproj","groups":[],"source":null}]}],"updated-dependency-files":[{"name":"project.csproj","content":"updated content","directory":"/","type":"file","support_file":false,"content_encoding":"utf-8","deleted":false,"operation":"update","mode":null}],"base-commit-sha":"TEST-COMMIT-SHA","commit-message":"commit message","pr-title":"pr title","pr-body":"pr body"}}
|
573
|
+
""";
|
574
|
+
Assert.Equal(expected, actual);
|
575
|
+
}
|
576
|
+
|
577
|
+
[Fact]
|
578
|
+
public void SerializeUpdatePullRequest()
|
579
|
+
{
|
580
|
+
var update = new UpdatePullRequest()
|
581
|
+
{
|
582
|
+
BaseCommitSha = "TEST-COMMIT-SHA",
|
583
|
+
DependencyNames = ["dep"],
|
584
|
+
UpdatedDependencyFiles = [new() { Name = "project.csproj", Directory = "/", Content = "updated content" }],
|
585
|
+
PrTitle = "pr title",
|
586
|
+
PrBody = "pr body",
|
587
|
+
CommitMessage = "commit message",
|
588
|
+
DependencyGroup = null,
|
589
|
+
};
|
590
|
+
var actual = HttpApiHandler.Serialize(update);
|
591
|
+
var expected = """
|
592
|
+
{"data":{"base-commit-sha":"TEST-COMMIT-SHA","dependency-names":["dep"],"updated-dependency-files":[{"name":"project.csproj","content":"updated content","directory":"/","type":"file","support_file":false,"content_encoding":"utf-8","deleted":false,"operation":"update","mode":null}],"pr-title":"pr title","pr-body":"pr body","commit-message":"commit message","dependency-group":null}}
|
593
|
+
""";
|
594
|
+
Assert.Equal(expected, actual);
|
595
|
+
}
|
596
|
+
|
514
597
|
public static IEnumerable<object?[]> DeserializeErrorTypesData()
|
515
598
|
{
|
516
599
|
yield return
|
@@ -553,6 +636,22 @@ public class SerializationTests
|
|
553
636
|
"""
|
554
637
|
];
|
555
638
|
|
639
|
+
yield return
|
640
|
+
[
|
641
|
+
new PullRequestExistsForLatestVersion("dep", "ver"),
|
642
|
+
"""
|
643
|
+
{"data":{"error-type":"pull_request_exists_for_latest_version","error-details":{"dependency-name":"dep","dependency-version":"ver"}}}
|
644
|
+
"""
|
645
|
+
];
|
646
|
+
|
647
|
+
yield return
|
648
|
+
[
|
649
|
+
new SecurityUpdateNotNeeded("dep"),
|
650
|
+
"""
|
651
|
+
{"data":{"error-type":"security_update_not_needed","error-details":{"dependency-name":"dep"}}}
|
652
|
+
"""
|
653
|
+
];
|
654
|
+
|
556
655
|
yield return
|
557
656
|
[
|
558
657
|
new UnknownError(new Exception("some message"), "JOB-ID"),
|
@@ -33,6 +33,12 @@ internal class TestApiHandler : IApiHandler
|
|
33
33
|
return Task.CompletedTask;
|
34
34
|
}
|
35
35
|
|
36
|
+
public Task UpdatePullRequest(UpdatePullRequest updatePullRequest)
|
37
|
+
{
|
38
|
+
_receivedMessages.Add((updatePullRequest.GetType(), updatePullRequest));
|
39
|
+
return Task.CompletedTask;
|
40
|
+
}
|
41
|
+
|
36
42
|
public Task MarkAsProcessed(MarkAsProcessed markAsProcessed)
|
37
43
|
{
|
38
44
|
_receivedMessages.Add((markAsProcessed.GetType(), markAsProcessed));
|
@@ -92,31 +92,31 @@ public class UpdatedDependencyListTests
|
|
92
92
|
},
|
93
93
|
new ReportedDependency()
|
94
94
|
{
|
95
|
-
Name = "
|
96
|
-
Version = "
|
95
|
+
Name = "Newtonsoft.Json",
|
96
|
+
Version = "13.0.1",
|
97
97
|
Requirements =
|
98
98
|
[
|
99
99
|
new ReportedRequirement()
|
100
100
|
{
|
101
|
-
Requirement = "
|
101
|
+
Requirement = "13.0.1",
|
102
102
|
File = "/src/c/project.csproj",
|
103
103
|
Groups = ["dependencies"],
|
104
|
-
}
|
105
|
-
]
|
104
|
+
},
|
105
|
+
]
|
106
106
|
},
|
107
107
|
new ReportedDependency()
|
108
108
|
{
|
109
|
-
Name = "
|
110
|
-
Version = "
|
109
|
+
Name = "System.Text.Json",
|
110
|
+
Version = "6.0.0",
|
111
111
|
Requirements =
|
112
112
|
[
|
113
113
|
new ReportedRequirement()
|
114
114
|
{
|
115
|
-
Requirement = "
|
115
|
+
Requirement = "6.0.0",
|
116
116
|
File = "/src/c/project.csproj",
|
117
117
|
Groups = ["dependencies"],
|
118
|
-
}
|
119
|
-
]
|
118
|
+
}
|
119
|
+
],
|
120
120
|
},
|
121
121
|
],
|
122
122
|
DependencyFiles = ["/src/a/packages.config", "/src/a/project.csproj", "/src/b/packages.config", "/src/b/project.csproj", "/src/c/packages.config", "/src/c/project.csproj"],
|
@@ -538,6 +538,89 @@ public class MSBuildHelperTests : TestBase
|
|
538
538
|
""", evaluatedValue);
|
539
539
|
}
|
540
540
|
|
541
|
+
[Theory]
|
542
|
+
[MemberData(nameof(GetTargetFrameworkValuesFromProjectData))]
|
543
|
+
public async Task GetTargetFrameworkValuesFromProject(string projectContents, string[] expectedTfms)
|
544
|
+
{
|
545
|
+
using var tempDir = await TemporaryDirectory.CreateWithContentsAsync(
|
546
|
+
[
|
547
|
+
("Directory.Build.props", "<Project />"),
|
548
|
+
("Directory.Build.targets", "<Project />"),
|
549
|
+
("project.csproj", projectContents)
|
550
|
+
]);
|
551
|
+
var projectPath = Path.Combine(tempDir.DirectoryPath, "project.csproj");
|
552
|
+
var experimentsManager = new ExperimentsManager();
|
553
|
+
var logger = new TestLogger();
|
554
|
+
var actualTfms = await MSBuildHelper.GetTargetFrameworkValuesFromProject(tempDir.DirectoryPath, projectPath, experimentsManager, logger);
|
555
|
+
AssertEx.Equal(expectedTfms, actualTfms);
|
556
|
+
}
|
557
|
+
|
558
|
+
public static IEnumerable<object[]> GetTargetFrameworkValuesFromProjectData()
|
559
|
+
{
|
560
|
+
// SDK-style projects
|
561
|
+
yield return
|
562
|
+
[
|
563
|
+
"""
|
564
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
565
|
+
<PropertyGroup>
|
566
|
+
<TargetFramework>net8.0</TargetFramework>
|
567
|
+
</PropertyGroup>
|
568
|
+
</Project>
|
569
|
+
""",
|
570
|
+
new[] { "net8.0" }
|
571
|
+
];
|
572
|
+
|
573
|
+
yield return
|
574
|
+
[
|
575
|
+
"""
|
576
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
577
|
+
<PropertyGroup>
|
578
|
+
<TargetFrameworks> ; net8.0 ; </TargetFrameworks>
|
579
|
+
</PropertyGroup>
|
580
|
+
</Project>
|
581
|
+
""",
|
582
|
+
new[] { "net8.0" }
|
583
|
+
];
|
584
|
+
|
585
|
+
yield return
|
586
|
+
[
|
587
|
+
"""
|
588
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
589
|
+
<PropertyGroup>
|
590
|
+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
591
|
+
</PropertyGroup>
|
592
|
+
</Project>
|
593
|
+
""",
|
594
|
+
new[] { "net8.0", "net9.0" }
|
595
|
+
];
|
596
|
+
|
597
|
+
yield return
|
598
|
+
[
|
599
|
+
"""
|
600
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
601
|
+
<PropertyGroup>
|
602
|
+
<TargetFramework>net8.0-windows7.0</TargetFramework>
|
603
|
+
</PropertyGroup>
|
604
|
+
</Project>
|
605
|
+
""",
|
606
|
+
new[] { "net8.0-windows7.0" }
|
607
|
+
];
|
608
|
+
|
609
|
+
// legacy projects
|
610
|
+
yield return
|
611
|
+
[
|
612
|
+
"""
|
613
|
+
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
614
|
+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
615
|
+
<PropertyGroup>
|
616
|
+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
617
|
+
</PropertyGroup>
|
618
|
+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
619
|
+
</Project>
|
620
|
+
""",
|
621
|
+
new[] { "net45" }
|
622
|
+
];
|
623
|
+
}
|
541
624
|
|
542
625
|
#region
|
543
626
|
// Updating root package
|
@@ -1450,6 +1533,30 @@ public class MSBuildHelperTests : TestBase
|
|
1450
1533
|
// expectedError
|
1451
1534
|
new UpdateNotPossible(["Some.Package.1.2.3"]),
|
1452
1535
|
];
|
1536
|
+
|
1537
|
+
yield return
|
1538
|
+
[
|
1539
|
+
// output
|
1540
|
+
"Could not install package 'Some.Package 1.2.3'. You are trying to install this package into a project that targets 'SomeFramework'",
|
1541
|
+
// expectedError
|
1542
|
+
new UpdateNotPossible(["Some.Package.1.2.3"]),
|
1543
|
+
];
|
1544
|
+
|
1545
|
+
yield return
|
1546
|
+
[
|
1547
|
+
// output
|
1548
|
+
"Unable to find a version of 'Some.Package' that is compatible with 'Some.Other.Package 4.5.6 constraint: Some.Package (>= 1.2.3)'",
|
1549
|
+
// expectedError
|
1550
|
+
new UpdateNotPossible(["Some.Package.1.2.3"]),
|
1551
|
+
];
|
1552
|
+
|
1553
|
+
yield return
|
1554
|
+
[
|
1555
|
+
// output
|
1556
|
+
"the following error(s) may be blocking the current package operation: 'Some.Package 1.2.3 constraint: Some.Other.Package (>= 4.5.6)'",
|
1557
|
+
// expectedError
|
1558
|
+
new UpdateNotPossible(["Some.Package.1.2.3"]),
|
1559
|
+
];
|
1453
1560
|
}
|
1454
1561
|
|
1455
1562
|
public static IEnumerable<object[]> GetTopLevelPackageDependencyInfosTestData()
|
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.
|
4
|
+
version: 0.296.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-02-11 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.
|
19
|
+
version: 0.296.1
|
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.
|
26
|
+
version: 0.296.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rubyzip
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -438,6 +438,7 @@ files:
|
|
438
438
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/Advisory.cs
|
439
439
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/AllowedUpdate.cs
|
440
440
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/BadRequirement.cs
|
441
|
+
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/ClosePullRequest.cs
|
441
442
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/CommitOptions.cs
|
442
443
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/Condition.cs
|
443
444
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/CreatePullRequest.cs
|
@@ -455,12 +456,15 @@ files:
|
|
455
456
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/MarkAsProcessed.cs
|
456
457
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/PrivateSourceAuthenticationFailure.cs
|
457
458
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/PullRequest.cs
|
459
|
+
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/PullRequestExistsForLatestVersion.cs
|
458
460
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/ReportedDependency.cs
|
459
461
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/ReportedRequirement.cs
|
460
462
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/RequirementSource.cs
|
461
463
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/RequirementsUpdateStrategy.cs
|
464
|
+
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/SecurityUpdateNotNeeded.cs
|
462
465
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/UnknownError.cs
|
463
466
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/UpdateNotPossible.cs
|
467
|
+
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/UpdatePullRequest.cs
|
464
468
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/UpdatedDependencyList.cs
|
465
469
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/HttpApiHandler.cs
|
466
470
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/IApiHandler.cs
|
@@ -529,7 +533,7 @@ licenses:
|
|
529
533
|
- MIT
|
530
534
|
metadata:
|
531
535
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
532
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
536
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.296.1
|
533
537
|
post_install_message:
|
534
538
|
rdoc_options: []
|
535
539
|
require_paths:
|