dependabot-nuget 0.321.3 → 0.322.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.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/helpers/lib/NuGetUpdater/Directory.Packages.props +22 -22
  3. data/helpers/lib/NuGetUpdater/DotNetPackageCorrelation.Cli/Program.cs +21 -7
  4. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/AnalyzeCommand.cs +19 -11
  5. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/CloneCommand.cs +19 -9
  6. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/DiscoverCommand.cs +21 -14
  7. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/FrameworkCheckCommand.cs +8 -5
  8. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/RunCommand.cs +29 -16
  9. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/UpdateCommand.cs +20 -19
  10. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Program.cs +2 -1
  11. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Analyze.cs +1 -1
  12. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Discover.cs +10 -23
  13. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Run.cs +9 -0
  14. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Update.cs +15 -232
  15. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/SdkProjectDiscovery.cs +1 -154
  16. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/ExperimentsManager.cs +3 -12
  17. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/GlobalJsonBuildFile.cs +5 -13
  18. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/PrivateSourceTimedOutException.cs +12 -0
  19. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/JobErrorBase.cs +4 -0
  20. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/ApiModel/PrivateSourceTimedOut.cs +10 -0
  21. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/AzurePackageDetailFinder.cs +30 -0
  22. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/DetailedPullRequestBodyGenerator.cs +237 -0
  23. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/GitHubPackageDetailFinder.cs +101 -0
  24. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/GitLabPackageDetailFinder.cs +107 -0
  25. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/HttpFetcher.cs +32 -0
  26. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/IHttpFetcher.cs +30 -0
  27. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/IPackageDetailFinder.cs +47 -0
  28. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/IPullRequestBodyGenerator.cs +11 -0
  29. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/SimplePullRequestBodyGenerator.cs +15 -0
  30. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestTextGenerator.cs +7 -3
  31. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/RunWorker.cs +3 -525
  32. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/CreateSecurityUpdatePullRequestHandler.cs +2 -2
  33. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/GroupUpdateAllVersionsHandler.cs +4 -4
  34. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshGroupUpdatePullRequestHandler.cs +2 -2
  35. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshSecurityUpdatePullRequestHandler.cs +2 -2
  36. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshVersionUpdatePullRequestHandler.cs +2 -2
  37. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/FileWriters/FileWriterWorker.cs +85 -35
  38. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/FileWriters/XmlFileWriter.cs +27 -8
  39. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackageReferenceUpdater.cs +1 -856
  40. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdateOperationBase.cs +18 -7
  41. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdaterWorker.cs +16 -200
  42. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +21 -556
  43. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/AnalyzeWorkerTests.cs +9 -73
  44. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Clone/CloneWorkerTests.cs +2 -2
  45. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/DependencySolver/MSBuildDependencySolverTests.cs +1 -1
  46. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTestBase.cs +1 -20
  47. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.GlobalJson.cs +0 -2
  48. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.PackagesConfig.cs +3 -62
  49. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Project.cs +13 -563
  50. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.cs +20 -269
  51. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/SdkProjectDiscoveryTests.cs +2 -2
  52. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Files/GlobalJsonBuildFileTests.cs +0 -1
  53. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/EndToEndTests.cs +131 -131
  54. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/HttpApiHandlerTests.cs +1 -0
  55. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/JobErrorBaseTests.cs +7 -0
  56. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/MessageReportTests.cs +11 -0
  57. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/MiscellaneousTests.cs +0 -203
  58. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestBodyGenerator/DetailedPullRequestBodyGeneratorTests.cs +871 -0
  59. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestBodyGenerator/IPackageDetailFinderTests.cs +28 -0
  60. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestBodyGenerator/TestHttpFetcher.cs +23 -0
  61. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestTextTests.cs +24 -24
  62. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/SerializationTests.cs +14 -12
  63. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/CreateSecurityUpdatePullRequestHandlerTests.cs +6 -6
  64. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/GroupUpdateAllVersionsHandlerTests.cs +18 -18
  65. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/RefreshGroupUpdatePullRequestHandlerTests.cs +15 -15
  66. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/RefreshSecurityUpdatePullRequestHandlerTests.cs +21 -21
  67. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/RefreshVersionUpdatePullRequestHandlerTests.cs +15 -15
  68. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/UpdateHandlersTestsBase.cs +1 -8
  69. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/FileWriterWorkerTests.cs +2 -2
  70. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/FileWriterWorkerTests_MiscellaneousTests.cs +45 -0
  71. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/XmlFileWriterTests.cs +111 -0
  72. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/PackageReferenceUpdaterTests.cs +1 -159
  73. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +26 -660
  74. data/helpers/lib/NuGetUpdater/global.json +1 -1
  75. metadata +18 -10
  76. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/RunResult.cs +0 -13
  77. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestMessageTests.cs +0 -296
  78. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/RunWorkerTests.cs +0 -3592
  79. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdatePermittedAndMessageTests.cs +0 -457
  80. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DirsProj.cs +0 -378
  81. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/SdkPackageUpdaterHelperTests.cs +0 -175
@@ -1,457 +0,0 @@
1
- using System.Collections.Immutable;
2
-
3
- using NuGet.Versioning;
4
-
5
- using NuGetUpdater.Core.Analyze;
6
- using NuGetUpdater.Core.Run;
7
- using NuGetUpdater.Core.Run.ApiModel;
8
-
9
- using Xunit;
10
-
11
- using DepType = NuGetUpdater.Core.Run.ApiModel.DependencyType;
12
-
13
- namespace NuGetUpdater.Core.Test.Run;
14
-
15
- public class UpdatePermittedAndMessageTests
16
- {
17
- [Theory]
18
- [MemberData(nameof(UpdatePermittedAndMessageTestData))]
19
- public void UpdatePermittedAndMessage(Job job, Dependency dependency, bool expectedResult, MessageBase? expectedMessage)
20
- {
21
- var (actualResult, actualMessage) = RunWorker.UpdatePermittedAndMessage(job, dependency);
22
- Assert.Equal(expectedResult, actualResult);
23
-
24
- if (expectedMessage is null)
25
- {
26
- Assert.Null(actualMessage);
27
- }
28
- else
29
- {
30
- Assert.True(actualMessage is not null, $"Expected message of type {expectedMessage.GetType().Name} but got null");
31
- Assert.Equal(expectedMessage.GetType(), actualMessage.GetType());
32
- var actualMessageJson = HttpApiHandler.Serialize(actualMessage);
33
- var expectedMessageJson = HttpApiHandler.Serialize(expectedMessage);
34
- Assert.Equal(expectedMessageJson, actualMessageJson);
35
- }
36
- }
37
-
38
- public static IEnumerable<object?[]> UpdatePermittedAndMessageTestData()
39
- {
40
- // with default allowed updates on a transitive dependency
41
- yield return
42
- [
43
- CreateJob(
44
- allowedUpdates: [
45
- new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All }
46
- ],
47
- dependencies: [],
48
- existingPrs: [],
49
- securityAdvisories: [
50
- new Advisory() { DependencyName = "Some.Package", AffectedVersions = [], PatchedVersions = [Requirement.Parse(">= 1.11.0")], UnaffectedVersions = [] }
51
- ],
52
- securityUpdatesOnly: false,
53
- updatingAPullRequest: false),
54
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: true),
55
- // expectedResult
56
- false,
57
- // expectedMessage
58
- null,
59
- ];
60
-
61
- // when dealing with a security update
62
- yield return
63
- [
64
- CreateJob(
65
- allowedUpdates: [
66
- new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All }
67
- ],
68
- dependencies: [],
69
- existingPrs: [],
70
- securityAdvisories: [
71
- new Advisory() { DependencyName = "Some.Package", AffectedVersions = [], PatchedVersions = [Requirement.Parse(">= 1.11.0")], UnaffectedVersions = [] }
72
- ],
73
- securityUpdatesOnly: true,
74
- updatingAPullRequest: false),
75
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: true),
76
- // expectedResult
77
- true,
78
- // expectedMessage
79
- null,
80
- ];
81
-
82
- // with a top-level dependency
83
- yield return
84
- [
85
- CreateJob(
86
- allowedUpdates: [
87
- new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
88
- new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
89
- ],
90
- dependencies: [],
91
- existingPrs: [],
92
- securityAdvisories: [],
93
- securityUpdatesOnly: false,
94
- updatingAPullRequest: false),
95
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
96
- // expectedResult
97
- true,
98
- // expectedMessage
99
- null,
100
- ];
101
-
102
- // with a sub-dependency
103
- yield return
104
- [
105
- CreateJob(
106
- allowedUpdates: [
107
- new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
108
- new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
109
- ],
110
- dependencies: [],
111
- existingPrs: [],
112
- securityAdvisories: [],
113
- securityUpdatesOnly: false,
114
- updatingAPullRequest: false),
115
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: true),
116
- // expectedResult
117
- false,
118
- // expectedMessage
119
- null,
120
- ];
121
-
122
- // when insecure
123
- yield return
124
- [
125
- CreateJob(
126
- allowedUpdates: [
127
- new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
128
- new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
129
- ],
130
- dependencies: [],
131
- existingPrs: [],
132
- securityAdvisories: [
133
- new Advisory() { DependencyName = "Some.Package", AffectedVersions = [], PatchedVersions = [Requirement.Parse(">= 1.11.0")], UnaffectedVersions = [] }
134
- ],
135
- securityUpdatesOnly: false,
136
- updatingAPullRequest: false),
137
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: true),
138
- // expectedResult
139
- true,
140
- // expectedMessage
141
- null,
142
- ];
143
-
144
- // when only security fixes are allowed
145
- yield return
146
- [
147
- CreateJob(
148
- allowedUpdates: [
149
- new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
150
- new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
151
- ],
152
- dependencies: [],
153
- existingPrs: [],
154
- securityAdvisories: [],
155
- securityUpdatesOnly: true,
156
- updatingAPullRequest: false),
157
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
158
- // expectedResult
159
- false,
160
- // expectedMessage
161
- null,
162
- ];
163
-
164
- // when dealing with a security fix
165
- yield return
166
- [
167
- CreateJob(
168
- allowedUpdates: [
169
- new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
170
- new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
171
- ],
172
- dependencies: [],
173
- existingPrs: [],
174
- securityAdvisories: [
175
- new Advisory() { DependencyName = "Some.Package", AffectedVersions = [], PatchedVersions = [Requirement.Parse(">= 1.11.0")], UnaffectedVersions = [] }
176
- ],
177
- securityUpdatesOnly: true,
178
- updatingAPullRequest: false),
179
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
180
- // expectedResult
181
- true,
182
- // expectedMessage
183
- null,
184
- ];
185
-
186
- // when dealing with a security fix that doesn't apply
187
- yield return
188
- [
189
- CreateJob(
190
- allowedUpdates: [
191
- new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
192
- new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
193
- ],
194
- dependencies: [],
195
- existingPrs: [],
196
- securityAdvisories: [
197
- new Advisory() { DependencyName = "Some.Package", AffectedVersions = [Requirement.Parse("> 1.8.0")], PatchedVersions = [], UnaffectedVersions = [] }
198
- ],
199
- securityUpdatesOnly: true,
200
- updatingAPullRequest: false),
201
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
202
- // expectedResult
203
- false,
204
- // expectedMessage
205
- new SecurityUpdateNotNeeded("Some.Package"),
206
- ];
207
-
208
- // when dealing with a security fix that doesn't apply to some versions
209
- yield return
210
- [
211
- CreateJob(
212
- allowedUpdates: [
213
- new AllowedUpdate() { DependencyType = DepType.Direct, UpdateType = UpdateType.All },
214
- new AllowedUpdate() { DependencyType = DepType.Indirect, UpdateType = UpdateType.Security }
215
- ],
216
- dependencies: [],
217
- existingPrs: [],
218
- securityAdvisories: [
219
- new Advisory() { DependencyName = "Some.Package", AffectedVersions = [Requirement.Parse("< 1.8.0"), Requirement.Parse("> 1.8.0")], PatchedVersions = [], UnaffectedVersions = [] }
220
- ],
221
- securityUpdatesOnly: true,
222
- updatingAPullRequest: false),
223
- new Dependency("Some.Package", "1.8.1", DependencyType.PackageReference, IsTransitive: false),
224
- // expectedResult
225
- true,
226
- // expectedMessage
227
- null,
228
- ];
229
-
230
- // when a dependency allow list that includes the dependency
231
- yield return
232
- [
233
- CreateJob(
234
- allowedUpdates: [
235
- new AllowedUpdate() { DependencyName = "Some.Package" }
236
- ],
237
- dependencies: [],
238
- existingPrs: [],
239
- securityAdvisories: [],
240
- securityUpdatesOnly: false,
241
- updatingAPullRequest: false),
242
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
243
- // expectedResult
244
- true,
245
- // expectedMessage
246
- null,
247
- ];
248
-
249
- // with a dependency allow list that uses a wildcard
250
- yield return
251
- [
252
- CreateJob(
253
- allowedUpdates: [
254
- new AllowedUpdate() { DependencyName = "Some.*" }
255
- ],
256
- dependencies: [],
257
- existingPrs: [],
258
- securityAdvisories: [],
259
- securityUpdatesOnly: false,
260
- updatingAPullRequest: false),
261
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
262
- // expectedResult
263
- true,
264
- // expectedMessage
265
- null,
266
- ];
267
-
268
- // when dependency allow list that excludes the dependency
269
- yield return
270
- [
271
- CreateJob(
272
- allowedUpdates: [
273
- new AllowedUpdate() { DependencyName = "Unrelated.Package" }
274
- ],
275
- dependencies: [],
276
- existingPrs: [],
277
- securityAdvisories: [],
278
- securityUpdatesOnly: false,
279
- updatingAPullRequest: false),
280
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
281
- // expectedResult
282
- false,
283
- // expectedMessage
284
- null,
285
- ];
286
-
287
- // when matching with an incomplete dependency name
288
- yield return
289
- [
290
- CreateJob(
291
- allowedUpdates: [
292
- new AllowedUpdate() { DependencyName = "Some" }
293
- ],
294
- dependencies: [],
295
- existingPrs: [],
296
- securityAdvisories: [],
297
- securityUpdatesOnly: false,
298
- updatingAPullRequest: false),
299
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
300
- // expectedResult
301
- false,
302
- // expectedMessage
303
- null,
304
- ];
305
-
306
- // with a dependency allow list that uses a wildcard
307
- yield return
308
- [
309
- CreateJob(
310
- allowedUpdates: [
311
- new AllowedUpdate() { DependencyName = "Unrelated.*" }
312
- ],
313
- dependencies: [],
314
- existingPrs: [],
315
- securityAdvisories: [],
316
- securityUpdatesOnly: false,
317
- updatingAPullRequest: false),
318
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
319
- // expectedResult
320
- false,
321
- // expectedMessage
322
- null,
323
- ];
324
-
325
- // when security fixes are also allowed
326
- yield return
327
- [
328
- CreateJob(
329
- allowedUpdates: [
330
- new AllowedUpdate() { DependencyName = "Unrelated.Package" },
331
- new AllowedUpdate() { UpdateType = UpdateType.Security }
332
- ],
333
- dependencies: [],
334
- existingPrs: [],
335
- securityAdvisories: [],
336
- securityUpdatesOnly: false,
337
- updatingAPullRequest: false),
338
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
339
- // expectedResult
340
- false,
341
- // expectedMessage
342
- null,
343
- ];
344
-
345
- // when dealing with a security fix
346
- yield return
347
- [
348
- CreateJob(
349
- allowedUpdates: [
350
- new AllowedUpdate() { DependencyName = "Unrelated.Package"}, new AllowedUpdate(){ UpdateType = UpdateType.Security }
351
- ],
352
- dependencies: [],
353
- existingPrs: [],
354
- securityAdvisories: [
355
- new Advisory() { DependencyName = "Some.Package", AffectedVersions = [], PatchedVersions = [Requirement.Parse(">= 1.11.0")], UnaffectedVersions = [] }
356
- ],
357
- securityUpdatesOnly: false,
358
- updatingAPullRequest: false),
359
- new Dependency("Some.Package", "1.8.0", DependencyType.PackageReference, IsTransitive: false),
360
- // expectedResult
361
- true,
362
- // expectedMessage
363
- null,
364
- ];
365
-
366
- // security job, not vulnerable => security update not needed
367
- yield return
368
- [
369
- CreateJob(
370
- allowedUpdates: [
371
- new AllowedUpdate() { UpdateType = UpdateType.Security }
372
- ],
373
- dependencies: [],
374
- existingPrs: [],
375
- securityAdvisories: [
376
- new Advisory() { DependencyName = "Some.Package", AffectedVersions = [Requirement.Parse("1.0.0")], PatchedVersions = [Requirement.Parse("1.1.0")] }
377
- ],
378
- securityUpdatesOnly: true,
379
- updatingAPullRequest: false),
380
- new Dependency("Some.Package", "1.1.0", DependencyType.PackageReference),
381
- // expectedResult
382
- false,
383
- // expectedMessage
384
- new SecurityUpdateNotNeeded("Some.Package")
385
- ];
386
-
387
- // security job, not updating existing => pr already exists
388
- yield return
389
- [
390
- CreateJob(
391
- allowedUpdates: [
392
- new AllowedUpdate() { UpdateType = UpdateType.Security }
393
- ],
394
- dependencies: [],
395
- existingPrs: [
396
- new PullRequest() { Dependencies = [new PullRequestDependency() { DependencyName = "Some.Package", DependencyVersion = NuGetVersion.Parse("1.2.0") }] }
397
- ],
398
- securityAdvisories: [
399
- new Advisory() { DependencyName = "Some.Package", AffectedVersions = [Requirement.Parse("1.1.0")] }
400
- ],
401
- securityUpdatesOnly: true,
402
- updatingAPullRequest: false),
403
- new Dependency("Some.Package", "1.1.0", DependencyType.PackageReference),
404
- // expectedResult
405
- false,
406
- // expectedMessage
407
- new PullRequestExistsForLatestVersion("Some.Package", "1.2.0")
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
- ];
432
- }
433
-
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)
441
- {
442
- return new Job()
443
- {
444
- AllowedUpdates = allowedUpdates,
445
- Dependencies = dependencies,
446
- ExistingPullRequests = existingPrs,
447
- SecurityAdvisories = securityAdvisories,
448
- SecurityUpdatesOnly = securityUpdatesOnly,
449
- Source = new()
450
- {
451
- Provider = "nuget",
452
- Repo = "test/repo",
453
- },
454
- UpdatingAPullRequest = updatingAPullRequest,
455
- };
456
- }
457
- }