dependabot-nuget 0.304.0 → 0.305.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.
- checksums.yaml +4 -4
- data/helpers/lib/NuGetUpdater/Directory.Packages.props +5 -5
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/AnalyzeCommand.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/CloneCommand.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/DiscoverCommand.cs +2 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/RunCommand.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/UpdateCommand.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Analyze/AnalyzeWorker.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DiscoveryWorker.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/ProjectBuildFile.cs +3 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/NuGetUpdater.Core.csproj +4 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/JobErrorBase.cs +1 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestTextGenerator.cs +13 -12
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/RunWorker.cs +52 -21
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackageReferenceUpdater.cs +13 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdateOperationBase.cs +3 -3
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdaterWorker.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +33 -12
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/OpenTelemetryLogger.cs +54 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.cs +77 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestMessageTests.cs +45 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestTextTests.cs +63 -44
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/RunWorkerTests.cs +56 -8
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdatePermittedAndMessageTests.cs +90 -23
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TestBase.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/PackageReferenceUpdaterTests.cs +60 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/LoggerTests.cs +61 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +44 -0
- metadata +7 -5
@@ -44,11 +44,13 @@ public class UpdatePermittedAndMessageTests
|
|
44
44
|
allowedUpdates: [
|
45
45
|
new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All }
|
46
46
|
],
|
47
|
+
dependencies: [],
|
47
48
|
existingPrs: [],
|
48
49
|
securityAdvisories: [
|
49
50
|
new Advisory() { DependencyName = "Some.Package", AffectedVersions = [], PatchedVersions = [Requirement.Parse(">= 1.11.0")], UnaffectedVersions = [] }
|
50
51
|
],
|
51
|
-
securityUpdatesOnly: false
|
52
|
+
securityUpdatesOnly: false,
|
53
|
+
updatingAPullRequest: false),
|
52
54
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: true),
|
53
55
|
// expectedResult
|
54
56
|
false,
|
@@ -63,11 +65,13 @@ public class UpdatePermittedAndMessageTests
|
|
63
65
|
allowedUpdates: [
|
64
66
|
new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All }
|
65
67
|
],
|
68
|
+
dependencies: [],
|
66
69
|
existingPrs: [],
|
67
70
|
securityAdvisories: [
|
68
71
|
new Advisory() { DependencyName = "Some.Package", AffectedVersions = [], PatchedVersions = [Requirement.Parse(">= 1.11.0")], UnaffectedVersions = [] }
|
69
72
|
],
|
70
|
-
securityUpdatesOnly: true
|
73
|
+
securityUpdatesOnly: true,
|
74
|
+
updatingAPullRequest: false),
|
71
75
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: true),
|
72
76
|
// expectedResult
|
73
77
|
true,
|
@@ -83,9 +87,11 @@ public class UpdatePermittedAndMessageTests
|
|
83
87
|
new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
|
84
88
|
new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
|
85
89
|
],
|
90
|
+
dependencies: [],
|
86
91
|
existingPrs: [],
|
87
92
|
securityAdvisories: [],
|
88
|
-
securityUpdatesOnly: false
|
93
|
+
securityUpdatesOnly: false,
|
94
|
+
updatingAPullRequest: false),
|
89
95
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
|
90
96
|
// expectedResult
|
91
97
|
true,
|
@@ -101,9 +107,11 @@ public class UpdatePermittedAndMessageTests
|
|
101
107
|
new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
|
102
108
|
new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
|
103
109
|
],
|
110
|
+
dependencies: [],
|
104
111
|
existingPrs: [],
|
105
112
|
securityAdvisories: [],
|
106
|
-
securityUpdatesOnly: false
|
113
|
+
securityUpdatesOnly: false,
|
114
|
+
updatingAPullRequest: false),
|
107
115
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: true),
|
108
116
|
// expectedResult
|
109
117
|
false,
|
@@ -119,11 +127,13 @@ public class UpdatePermittedAndMessageTests
|
|
119
127
|
new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
|
120
128
|
new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
|
121
129
|
],
|
130
|
+
dependencies: [],
|
122
131
|
existingPrs: [],
|
123
132
|
securityAdvisories: [
|
124
133
|
new Advisory() { DependencyName = "Some.Package", AffectedVersions = [], PatchedVersions = [Requirement.Parse(">= 1.11.0")], UnaffectedVersions = [] }
|
125
134
|
],
|
126
|
-
securityUpdatesOnly: false
|
135
|
+
securityUpdatesOnly: false,
|
136
|
+
updatingAPullRequest: false),
|
127
137
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: true),
|
128
138
|
// expectedResult
|
129
139
|
true,
|
@@ -139,9 +149,11 @@ public class UpdatePermittedAndMessageTests
|
|
139
149
|
new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
|
140
150
|
new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
|
141
151
|
],
|
152
|
+
dependencies: [],
|
142
153
|
existingPrs: [],
|
143
154
|
securityAdvisories: [],
|
144
|
-
securityUpdatesOnly: true
|
155
|
+
securityUpdatesOnly: true,
|
156
|
+
updatingAPullRequest: false),
|
145
157
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
|
146
158
|
// expectedResult
|
147
159
|
false,
|
@@ -157,11 +169,13 @@ public class UpdatePermittedAndMessageTests
|
|
157
169
|
new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
|
158
170
|
new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
|
159
171
|
],
|
172
|
+
dependencies: [],
|
160
173
|
existingPrs: [],
|
161
174
|
securityAdvisories: [
|
162
175
|
new Advisory() { DependencyName = "Some.Package", AffectedVersions = [], PatchedVersions = [Requirement.Parse(">= 1.11.0")], UnaffectedVersions = [] }
|
163
176
|
],
|
164
|
-
securityUpdatesOnly: true
|
177
|
+
securityUpdatesOnly: true,
|
178
|
+
updatingAPullRequest: false),
|
165
179
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
|
166
180
|
// expectedResult
|
167
181
|
true,
|
@@ -177,11 +191,13 @@ public class UpdatePermittedAndMessageTests
|
|
177
191
|
new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
|
178
192
|
new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
|
179
193
|
],
|
194
|
+
dependencies: [],
|
180
195
|
existingPrs: [],
|
181
196
|
securityAdvisories: [
|
182
197
|
new Advisory() { DependencyName = "Some.Package", AffectedVersions = [Requirement.Parse("> 1.8.0")], PatchedVersions = [], UnaffectedVersions = [] }
|
183
198
|
],
|
184
|
-
securityUpdatesOnly: true
|
199
|
+
securityUpdatesOnly: true,
|
200
|
+
updatingAPullRequest: false),
|
185
201
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
|
186
202
|
// expectedResult
|
187
203
|
false,
|
@@ -197,11 +213,13 @@ public class UpdatePermittedAndMessageTests
|
|
197
213
|
new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
|
198
214
|
new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
|
199
215
|
],
|
216
|
+
dependencies: [],
|
200
217
|
existingPrs: [],
|
201
218
|
securityAdvisories: [
|
202
219
|
new Advisory() { DependencyName = "Some.Package", AffectedVersions = [Requirement.Parse("< 1.8.0"), Requirement.Parse("> 1.8.0")], PatchedVersions = [], UnaffectedVersions = [] }
|
203
220
|
],
|
204
|
-
securityUpdatesOnly: true
|
221
|
+
securityUpdatesOnly: true,
|
222
|
+
updatingAPullRequest: false),
|
205
223
|
new Dependency("Some.Package", "1.8.1", DependencyType.PackageReference, IsTransitive: false),
|
206
224
|
// expectedResult
|
207
225
|
true,
|
@@ -216,9 +234,11 @@ public class UpdatePermittedAndMessageTests
|
|
216
234
|
allowedUpdates: [
|
217
235
|
new AllowedUpdate() { DependencyName = "Some.Package" }
|
218
236
|
],
|
237
|
+
dependencies: [],
|
219
238
|
existingPrs: [],
|
220
239
|
securityAdvisories: [],
|
221
|
-
securityUpdatesOnly: false
|
240
|
+
securityUpdatesOnly: false,
|
241
|
+
updatingAPullRequest: false),
|
222
242
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
|
223
243
|
// expectedResult
|
224
244
|
true,
|
@@ -233,9 +253,11 @@ public class UpdatePermittedAndMessageTests
|
|
233
253
|
allowedUpdates: [
|
234
254
|
new AllowedUpdate() { DependencyName = "Some.*" }
|
235
255
|
],
|
256
|
+
dependencies: [],
|
236
257
|
existingPrs: [],
|
237
258
|
securityAdvisories: [],
|
238
|
-
securityUpdatesOnly: false
|
259
|
+
securityUpdatesOnly: false,
|
260
|
+
updatingAPullRequest: false),
|
239
261
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
|
240
262
|
// expectedResult
|
241
263
|
true,
|
@@ -250,9 +272,11 @@ public class UpdatePermittedAndMessageTests
|
|
250
272
|
allowedUpdates: [
|
251
273
|
new AllowedUpdate() { DependencyName = "Unrelated.Package" }
|
252
274
|
],
|
275
|
+
dependencies: [],
|
253
276
|
existingPrs: [],
|
254
277
|
securityAdvisories: [],
|
255
|
-
securityUpdatesOnly: false
|
278
|
+
securityUpdatesOnly: false,
|
279
|
+
updatingAPullRequest: false),
|
256
280
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
|
257
281
|
// expectedResult
|
258
282
|
false,
|
@@ -267,9 +291,11 @@ public class UpdatePermittedAndMessageTests
|
|
267
291
|
allowedUpdates: [
|
268
292
|
new AllowedUpdate() { DependencyName = "Some" }
|
269
293
|
],
|
294
|
+
dependencies: [],
|
270
295
|
existingPrs: [],
|
271
296
|
securityAdvisories: [],
|
272
|
-
securityUpdatesOnly: false
|
297
|
+
securityUpdatesOnly: false,
|
298
|
+
updatingAPullRequest: false),
|
273
299
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
|
274
300
|
// expectedResult
|
275
301
|
false,
|
@@ -284,9 +310,11 @@ public class UpdatePermittedAndMessageTests
|
|
284
310
|
allowedUpdates: [
|
285
311
|
new AllowedUpdate() { DependencyName = "Unrelated.*" }
|
286
312
|
],
|
313
|
+
dependencies: [],
|
287
314
|
existingPrs: [],
|
288
315
|
securityAdvisories: [],
|
289
|
-
securityUpdatesOnly: false
|
316
|
+
securityUpdatesOnly: false,
|
317
|
+
updatingAPullRequest: false),
|
290
318
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
|
291
319
|
// expectedResult
|
292
320
|
false,
|
@@ -302,9 +330,11 @@ public class UpdatePermittedAndMessageTests
|
|
302
330
|
new AllowedUpdate() { DependencyName = "Unrelated.Package" },
|
303
331
|
new AllowedUpdate() { UpdateType = UpdateType.Security }
|
304
332
|
],
|
333
|
+
dependencies: [],
|
305
334
|
existingPrs: [],
|
306
335
|
securityAdvisories: [],
|
307
|
-
securityUpdatesOnly: false
|
336
|
+
securityUpdatesOnly: false,
|
337
|
+
updatingAPullRequest: false),
|
308
338
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
|
309
339
|
// expectedResult
|
310
340
|
false,
|
@@ -319,11 +349,13 @@ public class UpdatePermittedAndMessageTests
|
|
319
349
|
allowedUpdates: [
|
320
350
|
new AllowedUpdate() { DependencyName = "Unrelated.Package"}, new AllowedUpdate(){ UpdateType = UpdateType.Security }
|
321
351
|
],
|
352
|
+
dependencies: [],
|
322
353
|
existingPrs: [],
|
323
354
|
securityAdvisories: [
|
324
355
|
new Advisory() { DependencyName = "Some.Package", AffectedVersions = [], PatchedVersions = [Requirement.Parse(">= 1.11.0")], UnaffectedVersions = [] }
|
325
356
|
],
|
326
|
-
securityUpdatesOnly: false
|
357
|
+
securityUpdatesOnly: false,
|
358
|
+
updatingAPullRequest: false),
|
327
359
|
new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
|
328
360
|
// expectedResult
|
329
361
|
true,
|
@@ -338,11 +370,13 @@ public class UpdatePermittedAndMessageTests
|
|
338
370
|
allowedUpdates: [
|
339
371
|
new AllowedUpdate() { UpdateType = UpdateType.Security }
|
340
372
|
],
|
373
|
+
dependencies: [],
|
341
374
|
existingPrs: [],
|
342
375
|
securityAdvisories: [
|
343
376
|
new Advisory() { DependencyName = "Some.Package", AffectedVersions = [Requirement.Parse("1.0.0")], PatchedVersions = [Requirement.Parse("1.1.0")] }
|
344
377
|
],
|
345
|
-
securityUpdatesOnly: true
|
378
|
+
securityUpdatesOnly: true,
|
379
|
+
updatingAPullRequest: false),
|
346
380
|
new Dependency("Some.Package", "1.1.0", DependencyType.PackageReference),
|
347
381
|
// expectedResult
|
348
382
|
false,
|
@@ -357,34 +391,67 @@ public class UpdatePermittedAndMessageTests
|
|
357
391
|
allowedUpdates: [
|
358
392
|
new AllowedUpdate() { UpdateType = UpdateType.Security }
|
359
393
|
],
|
394
|
+
dependencies: [],
|
360
395
|
existingPrs: [
|
361
396
|
new PullRequest() { Dependencies = [new PullRequestDependency() { DependencyName = "Some.Package", DependencyVersion = NuGetVersion.Parse("1.2.0") }] }
|
362
397
|
],
|
363
398
|
securityAdvisories: [
|
364
399
|
new Advisory() { DependencyName = "Some.Package", AffectedVersions = [Requirement.Parse("1.1.0")] }
|
365
400
|
],
|
366
|
-
securityUpdatesOnly: true
|
401
|
+
securityUpdatesOnly: true,
|
402
|
+
updatingAPullRequest: false),
|
367
403
|
new Dependency("Some.Package", "1.1.0", DependencyType.PackageReference),
|
368
404
|
// expectedResult
|
369
405
|
false,
|
370
406
|
// expectedMessage
|
371
407
|
new PullRequestExistsForLatestVersion("Some.Package", "1.2.0")
|
372
408
|
];
|
409
|
+
|
410
|
+
// security job, updating existing => do update
|
411
|
+
yield return
|
412
|
+
[
|
413
|
+
CreateJob(
|
414
|
+
allowedUpdates: [
|
415
|
+
new AllowedUpdate() { UpdateType = UpdateType.All, DependencyType = DepType.Direct }
|
416
|
+
],
|
417
|
+
dependencies: ["Some.Package"],
|
418
|
+
existingPrs: [
|
419
|
+
new PullRequest() { Dependencies = [new PullRequestDependency() { DependencyName = "Some.Package", DependencyVersion = NuGetVersion.Parse("1.1.0") }] }
|
420
|
+
],
|
421
|
+
securityAdvisories: [
|
422
|
+
new Advisory() { DependencyName = "Some.Package", AffectedVersions = [Requirement.Parse(">= 1.0.0, < 1.1.0")] }
|
423
|
+
],
|
424
|
+
securityUpdatesOnly: true,
|
425
|
+
updatingAPullRequest: true),
|
426
|
+
new Dependency("Some.Package", "1.0.0", DependencyType.PackageReference),
|
427
|
+
// expectedResult
|
428
|
+
true,
|
429
|
+
// expectedMessage
|
430
|
+
null
|
431
|
+
];
|
373
432
|
}
|
374
433
|
|
375
|
-
private static Job CreateJob(
|
434
|
+
private static Job CreateJob(
|
435
|
+
ImmutableArray<AllowedUpdate> allowedUpdates,
|
436
|
+
ImmutableArray<string> dependencies,
|
437
|
+
ImmutableArray<PullRequest> existingPrs,
|
438
|
+
ImmutableArray<Advisory> securityAdvisories,
|
439
|
+
bool securityUpdatesOnly,
|
440
|
+
bool updatingAPullRequest)
|
376
441
|
{
|
377
442
|
return new Job()
|
378
443
|
{
|
379
|
-
AllowedUpdates = allowedUpdates
|
380
|
-
|
381
|
-
|
444
|
+
AllowedUpdates = allowedUpdates,
|
445
|
+
Dependencies = dependencies,
|
446
|
+
ExistingPullRequests = existingPrs,
|
447
|
+
SecurityAdvisories = securityAdvisories,
|
382
448
|
SecurityUpdatesOnly = securityUpdatesOnly,
|
383
449
|
Source = new()
|
384
450
|
{
|
385
451
|
Provider = "nuget",
|
386
452
|
Repo = "test/repo",
|
387
|
-
}
|
453
|
+
},
|
454
|
+
UpdatingAPullRequest = updatingAPullRequest,
|
388
455
|
};
|
389
456
|
}
|
390
457
|
}
|
@@ -11,7 +11,7 @@ namespace NuGetUpdater.Core.Test
|
|
11
11
|
{
|
12
12
|
protected TestBase()
|
13
13
|
{
|
14
|
-
MSBuildHelper.RegisterMSBuild(Environment.CurrentDirectory, Environment.CurrentDirectory);
|
14
|
+
MSBuildHelper.RegisterMSBuild(Environment.CurrentDirectory, Environment.CurrentDirectory, new TestLogger());
|
15
15
|
}
|
16
16
|
|
17
17
|
protected static void ValidateError(JobErrorBase expected, JobErrorBase? actual)
|
@@ -11,6 +11,66 @@ namespace NuGetUpdater.Core.Test.Update;
|
|
11
11
|
|
12
12
|
public class PackageReferenceUpdaterTests
|
13
13
|
{
|
14
|
+
[Fact]
|
15
|
+
public async Task DirectBuildFileChangesAreMaintainedWhenPinningTransitiveDependency()
|
16
|
+
{
|
17
|
+
// arrange
|
18
|
+
using var tempDir = await TemporaryDirectory.CreateWithContentsAsync([("project.csproj", """
|
19
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
20
|
+
<PropertyGroup>
|
21
|
+
<TargetFramework>net9.0</TargetFramework>
|
22
|
+
</PropertyGroup>
|
23
|
+
<ItemGroup>
|
24
|
+
<PackageReference Include="Completely.Different.Package" Version="1.0.0" />
|
25
|
+
<PackageReference Include="Some.Package" Version="1.0.0" />
|
26
|
+
</ItemGroup>
|
27
|
+
</Project>
|
28
|
+
""")]);
|
29
|
+
var packages = new[]
|
30
|
+
{
|
31
|
+
MockNuGetPackage.CreateSimplePackage("Completely.Different.Package", "1.0.0", "net9.0"),
|
32
|
+
MockNuGetPackage.CreateSimplePackage("Completely.Different.Package", "2.0.0", "net9.0"),
|
33
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "1.0.0", "net9.0", [(null, [("Transitive.Package", "1.0.0")])]),
|
34
|
+
MockNuGetPackage.CreateSimplePackage("Transitive.Package", "1.0.0", "net9.0"),
|
35
|
+
MockNuGetPackage.CreateSimplePackage("Transitive.Package", "2.0.0", "net9.0"),
|
36
|
+
};
|
37
|
+
await UpdateWorkerTestBase.MockNuGetPackagesInDirectory(packages, tempDir.DirectoryPath);
|
38
|
+
var fullProjectPath = Path.Combine(tempDir.DirectoryPath, "project.csproj");
|
39
|
+
var buildFile = ProjectBuildFile.Open(tempDir.DirectoryPath, fullProjectPath);
|
40
|
+
var experimentsManager = new ExperimentsManager();
|
41
|
+
|
42
|
+
// act
|
43
|
+
// pin transitive dependency
|
44
|
+
var updatedFiles = await PackageReferenceUpdater.UpdateTransitiveDependencyAsync(
|
45
|
+
tempDir.DirectoryPath,
|
46
|
+
fullProjectPath,
|
47
|
+
"Transitive.Package",
|
48
|
+
"2.0.0",
|
49
|
+
[buildFile],
|
50
|
+
experimentsManager,
|
51
|
+
new TestLogger());
|
52
|
+
|
53
|
+
// subsequent update should not overwrite previous change
|
54
|
+
PackageReferenceUpdater.TryUpdateDependencyVersion([buildFile], "Completely.Different.Package", "1.0.0", "2.0.0", new TestLogger());
|
55
|
+
|
56
|
+
// assert
|
57
|
+
await buildFile.SaveAsync();
|
58
|
+
var actualContents = await File.ReadAllTextAsync(fullProjectPath);
|
59
|
+
var expectedContents = """
|
60
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
61
|
+
<PropertyGroup>
|
62
|
+
<TargetFramework>net9.0</TargetFramework>
|
63
|
+
</PropertyGroup>
|
64
|
+
<ItemGroup>
|
65
|
+
<PackageReference Include="Completely.Different.Package" Version="2.0.0" />
|
66
|
+
<PackageReference Include="Some.Package" Version="1.0.0" />
|
67
|
+
<PackageReference Include="Transitive.Package" Version="2.0.0" />
|
68
|
+
</ItemGroup>
|
69
|
+
</Project>
|
70
|
+
""";
|
71
|
+
Assert.Equal(expectedContents, actualContents);
|
72
|
+
}
|
73
|
+
|
14
74
|
[Theory]
|
15
75
|
[MemberData(nameof(ComputeUpdateOperationsTestData))]
|
16
76
|
public async Task ComputeUpdateOperations
|
@@ -0,0 +1,61 @@
|
|
1
|
+
using System;
|
2
|
+
using System.Collections.Generic;
|
3
|
+
using System.Linq;
|
4
|
+
using System.Text;
|
5
|
+
using System.Threading.Tasks;
|
6
|
+
|
7
|
+
using Xunit;
|
8
|
+
using Xunit.Abstractions;
|
9
|
+
using Xunit.Sdk;
|
10
|
+
|
11
|
+
namespace NuGetUpdater.Core.Test.Utilities;
|
12
|
+
|
13
|
+
public class LoggerTests
|
14
|
+
{
|
15
|
+
[Fact]
|
16
|
+
public void OpenTelemetryToConsoleTest()
|
17
|
+
{
|
18
|
+
var outputBuilder = new StringBuilder();
|
19
|
+
var writer = new StringWriter(outputBuilder);
|
20
|
+
|
21
|
+
var originalOut = Console.Out;
|
22
|
+
var originalError = Console.Error;
|
23
|
+
Console.SetOut(writer);
|
24
|
+
Console.SetError(writer);
|
25
|
+
try
|
26
|
+
{
|
27
|
+
var logger = new OpenTelemetryLogger();
|
28
|
+
logger.Info("Hello world");
|
29
|
+
// The required console output is supposed to be YYYY/MM/DD HH:MM:SS INFO [Text]
|
30
|
+
Assert.Matches(@"^\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} INFO Hello world", outputBuilder.ToString());
|
31
|
+
}
|
32
|
+
finally
|
33
|
+
{
|
34
|
+
Console.SetOut(originalOut);
|
35
|
+
Console.SetOut(originalError);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
[Fact]
|
40
|
+
public void LogRaw_ShouldStreamLogsIndividually()
|
41
|
+
{
|
42
|
+
var consoleOutput = new StringWriter();
|
43
|
+
Console.SetOut(consoleOutput);
|
44
|
+
|
45
|
+
var logger = new OpenTelemetryLogger();
|
46
|
+
|
47
|
+
var testMessage1 = "Log message 1";
|
48
|
+
var testMessage2 = "Log message 2";
|
49
|
+
|
50
|
+
logger.LogRaw(testMessage1);
|
51
|
+
string output = consoleOutput.ToString();
|
52
|
+
Assert.Contains(testMessage1, output);
|
53
|
+
|
54
|
+
|
55
|
+
logger.LogRaw(testMessage2);
|
56
|
+
output = consoleOutput.ToString();
|
57
|
+
Assert.Contains(testMessage2, output);
|
58
|
+
}
|
59
|
+
|
60
|
+
|
61
|
+
}
|
@@ -128,6 +128,50 @@ public class MSBuildHelperTests : TestBase
|
|
128
128
|
}
|
129
129
|
}
|
130
130
|
|
131
|
+
[Fact]
|
132
|
+
public async Task IntermediatePropsAndTargetsAreExcludedFromBuildFileDiscovery()
|
133
|
+
{
|
134
|
+
// arrange
|
135
|
+
var repoFiles = new[]
|
136
|
+
{
|
137
|
+
("project.csproj", """
|
138
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
139
|
+
<PropertyGroup>
|
140
|
+
<TargetFramework>net9.0</TargetFramework>
|
141
|
+
</PropertyGroup>
|
142
|
+
<Import Project="SomeFile.props" />
|
143
|
+
<ItemGroup>
|
144
|
+
<PackageReference Include="Some.Package" Version="1.0.0" />
|
145
|
+
</ItemGroup>
|
146
|
+
</Project>
|
147
|
+
"""),
|
148
|
+
("global.json", "{}"),
|
149
|
+
("Directory.Build.props", "<Project />"),
|
150
|
+
("Directory.Build.targets", "<Project />"),
|
151
|
+
("SomeFile.props", "<Project />"),
|
152
|
+
// these simulate a direct discovery operation having previously been performed
|
153
|
+
("obj/project.csproj.nuget.g.props", "<Project />"),
|
154
|
+
("obj/project.csproj.nuget.g.targets", "<Project />"),
|
155
|
+
};
|
156
|
+
using var tempDir = await TemporaryDirectory.CreateWithContentsAsync(repoFiles);
|
157
|
+
var fullProjectPath = Path.Combine(tempDir.DirectoryPath, "project.csproj");
|
158
|
+
await UpdateWorkerTestBase.MockNuGetPackagesInDirectory([], tempDir.DirectoryPath);
|
159
|
+
|
160
|
+
// act
|
161
|
+
var (buildFiles, _tfms) = await MSBuildHelper.LoadBuildFilesAndTargetFrameworksAsync(tempDir.DirectoryPath, fullProjectPath);
|
162
|
+
|
163
|
+
// assert
|
164
|
+
var actualBuildFilePaths = buildFiles.Select(f => Path.GetRelativePath(tempDir.DirectoryPath, f.Path).NormalizePathToUnix()).ToArray();
|
165
|
+
var expectedBuildFilePaths = new[]
|
166
|
+
{
|
167
|
+
"project.csproj",
|
168
|
+
"Directory.Build.props",
|
169
|
+
"SomeFile.props",
|
170
|
+
"Directory.Build.targets",
|
171
|
+
};
|
172
|
+
AssertEx.Equal(expectedBuildFilePaths, actualBuildFilePaths);
|
173
|
+
}
|
174
|
+
|
131
175
|
[Theory]
|
132
176
|
[MemberData(nameof(GetTopLevelPackageDependencyInfosTestData))]
|
133
177
|
public async Task TopLevelPackageDependenciesCanBeDetermined(TestFile[] buildFileContents, Dependency[] expectedTopLevelDependencies, MockNuGetPackage[] testPackages)
|
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.305.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-04-
|
11
|
+
date: 2025-04-06 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.305.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.
|
26
|
+
version: 0.305.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rubyzip
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -383,6 +383,7 @@ files:
|
|
383
383
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/EOLHandlingTests.cs
|
384
384
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/JsonHelperTests.cs
|
385
385
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/LinuxOnlyAttribute.cs
|
386
|
+
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/LoggerTests.cs
|
386
387
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs
|
387
388
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/PathHelperTests.cs
|
388
389
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/ProjectHelperTests.cs
|
@@ -514,6 +515,7 @@ files:
|
|
514
515
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/JsonHelper.cs
|
515
516
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs
|
516
517
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/NuGetHelper.cs
|
518
|
+
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/OpenTelemetryLogger.cs
|
517
519
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/PathComparer.cs
|
518
520
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/PathHelper.cs
|
519
521
|
- helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ProcessExtensions.cs
|
@@ -550,7 +552,7 @@ licenses:
|
|
550
552
|
- MIT
|
551
553
|
metadata:
|
552
554
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
553
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
555
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.305.0
|
554
556
|
post_install_message:
|
555
557
|
rdoc_options: []
|
556
558
|
require_paths:
|