dependabot-nuget 0.322.0 → 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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Analyze.cs +1 -1
  3. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Discover.cs +10 -23
  4. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Run.cs +9 -0
  5. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Update.cs +15 -232
  6. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/SdkProjectDiscovery.cs +1 -154
  7. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/ExperimentsManager.cs +3 -12
  8. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/AzurePackageDetailFinder.cs +30 -0
  9. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/DetailedPullRequestBodyGenerator.cs +237 -0
  10. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/GitHubPackageDetailFinder.cs +101 -0
  11. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/GitLabPackageDetailFinder.cs +107 -0
  12. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/HttpFetcher.cs +32 -0
  13. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/IHttpFetcher.cs +30 -0
  14. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/IPackageDetailFinder.cs +47 -0
  15. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/IPullRequestBodyGenerator.cs +11 -0
  16. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestBodyGenerator/SimplePullRequestBodyGenerator.cs +15 -0
  17. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/PullRequestTextGenerator.cs +7 -3
  18. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/RunWorker.cs +3 -525
  19. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/CreateSecurityUpdatePullRequestHandler.cs +1 -1
  20. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/GroupUpdateAllVersionsHandler.cs +2 -2
  21. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshGroupUpdatePullRequestHandler.cs +1 -1
  22. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshSecurityUpdatePullRequestHandler.cs +1 -1
  23. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/RefreshVersionUpdatePullRequestHandler.cs +1 -1
  24. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/FileWriters/FileWriterWorker.cs +1 -1
  25. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/FileWriters/XmlFileWriter.cs +10 -3
  26. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackageReferenceUpdater.cs +1 -856
  27. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdaterWorker.cs +16 -200
  28. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +6 -556
  29. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Analyze/AnalyzeWorkerTests.cs +9 -73
  30. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Clone/CloneWorkerTests.cs +2 -2
  31. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/DependencySolver/MSBuildDependencySolverTests.cs +1 -1
  32. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTestBase.cs +1 -20
  33. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.PackagesConfig.cs +3 -62
  34. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Project.cs +13 -563
  35. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.cs +20 -267
  36. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/SdkProjectDiscoveryTests.cs +2 -2
  37. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/EndToEndTests.cs +131 -131
  38. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/MiscellaneousTests.cs +0 -203
  39. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestBodyGenerator/DetailedPullRequestBodyGeneratorTests.cs +871 -0
  40. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestBodyGenerator/IPackageDetailFinderTests.cs +28 -0
  41. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestBodyGenerator/TestHttpFetcher.cs +23 -0
  42. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestTextTests.cs +3 -2
  43. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/SerializationTests.cs +6 -12
  44. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/CreateSecurityUpdatePullRequestHandlerTests.cs +6 -6
  45. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/GroupUpdateAllVersionsHandlerTests.cs +18 -18
  46. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/RefreshGroupUpdatePullRequestHandlerTests.cs +15 -15
  47. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/RefreshSecurityUpdatePullRequestHandlerTests.cs +21 -21
  48. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/RefreshVersionUpdatePullRequestHandlerTests.cs +15 -15
  49. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdateHandlers/UpdateHandlersTestsBase.cs +1 -8
  50. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/FileWriterWorkerTests.cs +1 -1
  51. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/FileWriters/XmlFileWriterTests.cs +85 -0
  52. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/PackageReferenceUpdaterTests.cs +1 -159
  53. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +10 -660
  54. metadata +16 -10
  55. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/RunResult.cs +0 -13
  56. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/PullRequestMessageTests.cs +0 -296
  57. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/RunWorkerTests.cs +0 -3592
  58. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Run/UpdatePermittedAndMessageTests.cs +0 -457
  59. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DirsProj.cs +0 -378
  60. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/SdkPackageUpdaterHelperTests.cs +0 -175
@@ -1,4 +1,3 @@
1
- using System.Collections.Immutable;
2
1
  using System.Text.Json;
3
2
  using System.Text.Json.Serialization;
4
3
 
@@ -10,7 +9,6 @@ using NuGetUpdater.Core.Discover;
10
9
  using NuGetUpdater.Core.Run.ApiModel;
11
10
  using NuGetUpdater.Core.Updater;
12
11
  using NuGetUpdater.Core.Updater.FileWriters;
13
- using NuGetUpdater.Core.Utilities;
14
12
 
15
13
  namespace NuGetUpdater.Core;
16
14
 
@@ -77,70 +75,23 @@ public class UpdaterWorker : IUpdaterWorker
77
75
  workspacePath = Path.GetFullPath(Path.Join(repoRootPath, workspacePath));
78
76
  }
79
77
 
80
- if (_experimentsManager.UseNewFileUpdater)
81
- {
82
- var worker = new FileWriterWorker(
83
- new DiscoveryWorker(_jobId, _experimentsManager, _logger),
84
- new MSBuildDependencySolver(new DirectoryInfo(repoRootPath), new FileInfo(workspacePath), _experimentsManager, _logger),
85
- new XmlFileWriter(_logger),
86
- _logger
87
- );
88
- var updateOperations = await worker.RunAsync(
89
- new DirectoryInfo(repoRootPath),
90
- new FileInfo(workspacePath),
91
- dependencyName,
92
- NuGetVersion.Parse(previousDependencyVersion),
93
- NuGetVersion.Parse(newDependencyVersion)
94
- );
95
- return new UpdateOperationResult()
96
- {
97
- UpdateOperations = updateOperations,
98
- };
99
- }
100
-
101
- if (!isTransitive)
102
- {
103
- await DotNetToolsJsonUpdater.UpdateDependencyAsync(repoRootPath, workspacePath, dependencyName, previousDependencyVersion, newDependencyVersion, _logger);
104
- await GlobalJsonUpdater.UpdateDependencyAsync(repoRootPath, workspacePath, dependencyName, previousDependencyVersion, newDependencyVersion, _logger);
105
- }
106
-
107
- UpdateOperationResult result;
108
- var extension = Path.GetExtension(workspacePath).ToLowerInvariant();
109
- switch (extension)
110
- {
111
- case ".sln":
112
- result = await RunForSolutionAsync(repoRootPath, workspacePath, dependencyName, previousDependencyVersion, newDependencyVersion, isTransitive);
113
- break;
114
- case ".proj":
115
- result = await RunForProjFileAsync(repoRootPath, workspacePath, dependencyName, previousDependencyVersion, newDependencyVersion, isTransitive);
116
- break;
117
- case ".csproj":
118
- case ".fsproj":
119
- case ".vbproj":
120
- result = await RunForProjectAsync(repoRootPath, workspacePath, dependencyName, previousDependencyVersion, newDependencyVersion, isTransitive);
121
- break;
122
- default:
123
- _logger.Info($"File extension [{extension}] is not supported.");
124
- result = new UpdateOperationResult()
125
- {
126
- UpdateOperations = [],
127
- };
128
- break;
129
- }
130
-
131
- result = result with { UpdateOperations = UpdateOperationBase.NormalizeUpdateOperationCollection(repoRootPath, result.UpdateOperations) };
132
-
133
- if (!_experimentsManager.NativeUpdater)
78
+ var worker = new FileWriterWorker(
79
+ new DiscoveryWorker(_jobId, _experimentsManager, _logger),
80
+ new MSBuildDependencySolver(new DirectoryInfo(repoRootPath), new FileInfo(workspacePath), _experimentsManager, _logger),
81
+ new XmlFileWriter(_logger),
82
+ _logger
83
+ );
84
+ var updateOperations = await worker.RunAsync(
85
+ new DirectoryInfo(repoRootPath),
86
+ new FileInfo(workspacePath),
87
+ dependencyName,
88
+ NuGetVersion.Parse(previousDependencyVersion),
89
+ NuGetVersion.Parse(newDependencyVersion)
90
+ );
91
+ return new UpdateOperationResult()
134
92
  {
135
- // native updater reports the changes elsewhere
136
- var updateReport = UpdateOperationBase.GenerateUpdateOperationReport(result.UpdateOperations);
137
- _logger.Info(updateReport);
138
- }
139
-
140
- _logger.Info("Update complete.");
141
-
142
- _processedProjectPaths.Clear();
143
- return result;
93
+ UpdateOperations = updateOperations,
94
+ };
144
95
  }
145
96
 
146
97
  internal static string Serialize(UpdateOperationResult result)
@@ -156,139 +107,4 @@ public class UpdaterWorker : IUpdaterWorker
156
107
  var resultJson = Serialize(result);
157
108
  await File.WriteAllTextAsync(resultOutputPath, resultJson);
158
109
  }
159
-
160
- private async Task<UpdateOperationResult> RunForSolutionAsync(
161
- string repoRootPath,
162
- string solutionPath,
163
- string dependencyName,
164
- string previousDependencyVersion,
165
- string newDependencyVersion,
166
- bool isTransitive)
167
- {
168
- _logger.Info($"Running for solution [{Path.GetRelativePath(repoRootPath, solutionPath)}]");
169
- var updateOperations = new List<UpdateOperationBase>();
170
- var projectPaths = MSBuildHelper.GetProjectPathsFromSolution(solutionPath);
171
- foreach (var projectPath in projectPaths)
172
- {
173
- var projectResult = await RunForProjectAsync(repoRootPath, projectPath, dependencyName, previousDependencyVersion, newDependencyVersion, isTransitive);
174
- updateOperations.AddRange(projectResult.UpdateOperations);
175
- }
176
-
177
- return new UpdateOperationResult()
178
- {
179
- UpdateOperations = updateOperations.ToImmutableArray(),
180
- };
181
- }
182
-
183
- private async Task<UpdateOperationResult> RunForProjFileAsync(
184
- string repoRootPath,
185
- string projFilePath,
186
- string dependencyName,
187
- string previousDependencyVersion,
188
- string newDependencyVersion,
189
- bool isTransitive)
190
- {
191
- _logger.Info($"Running for proj file [{Path.GetRelativePath(repoRootPath, projFilePath)}]");
192
- if (!File.Exists(projFilePath))
193
- {
194
- _logger.Info($"File [{projFilePath}] does not exist.");
195
- return new UpdateOperationResult()
196
- {
197
- UpdateOperations = [],
198
- };
199
- }
200
-
201
- var updateOperations = new List<UpdateOperationBase>();
202
- var projectFilePaths = MSBuildHelper.GetProjectPathsFromProject(projFilePath);
203
- foreach (var projectFullPath in projectFilePaths)
204
- {
205
- // If there is some MSBuild logic that needs to run to fully resolve the path skip the project
206
- if (File.Exists(projectFullPath))
207
- {
208
- var projectResult = await RunForProjectAsync(repoRootPath, projectFullPath, dependencyName, previousDependencyVersion, newDependencyVersion, isTransitive);
209
- updateOperations.AddRange(projectResult.UpdateOperations);
210
- }
211
- }
212
-
213
- return new UpdateOperationResult()
214
- {
215
- UpdateOperations = updateOperations.ToImmutableArray(),
216
- };
217
- }
218
-
219
- private async Task<UpdateOperationResult> RunForProjectAsync(
220
- string repoRootPath,
221
- string projectPath,
222
- string dependencyName,
223
- string previousDependencyVersion,
224
- string newDependencyVersion,
225
- bool isTransitive)
226
- {
227
- _logger.Info($"Running for project file [{Path.GetRelativePath(repoRootPath, projectPath)}]");
228
- if (!File.Exists(projectPath))
229
- {
230
- _logger.Info($"File [{projectPath}] does not exist.");
231
- return new UpdateOperationResult()
232
- {
233
- UpdateOperations = [],
234
- };
235
- }
236
-
237
- var updateOperations = new List<UpdateOperationBase>();
238
- var projectFilePaths = MSBuildHelper.GetProjectPathsFromProject(projectPath);
239
- foreach (var projectFullPath in projectFilePaths.Concat([projectPath]))
240
- {
241
- // If there is some MSBuild logic that needs to run to fully resolve the path skip the project
242
- if (File.Exists(projectFullPath))
243
- {
244
- var performedOperations = await RunUpdaterAsync(repoRootPath, projectFullPath, dependencyName, previousDependencyVersion, newDependencyVersion, isTransitive);
245
- updateOperations.AddRange(performedOperations);
246
- }
247
- }
248
-
249
- return new UpdateOperationResult()
250
- {
251
- UpdateOperations = updateOperations.ToImmutableArray(),
252
- };
253
- }
254
-
255
- private async Task<IEnumerable<UpdateOperationBase>> RunUpdaterAsync(
256
- string repoRootPath,
257
- string projectPath,
258
- string dependencyName,
259
- string previousDependencyVersion,
260
- string newDependencyVersion,
261
- bool isTransitive)
262
- {
263
- if (_processedProjectPaths.Contains(projectPath))
264
- {
265
- return [];
266
- }
267
-
268
- _processedProjectPaths.Add(projectPath);
269
-
270
- _logger.Info($"Updating project [{projectPath}]");
271
-
272
- var updateOperations = new List<UpdateOperationBase>();
273
- var additionalFiles = ProjectHelper.GetAllAdditionalFilesFromProject(projectPath, ProjectHelper.PathFormat.Full);
274
- var packagesConfigFullPath = additionalFiles.Where(p => Path.GetFileName(p).Equals(ProjectHelper.PackagesConfigFileName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
275
- if (packagesConfigFullPath is not null)
276
- {
277
- var packagesConfigOperations = await PackagesConfigUpdater.UpdateDependencyAsync(repoRootPath, projectPath, dependencyName, previousDependencyVersion, newDependencyVersion, packagesConfigFullPath, _logger);
278
- updateOperations.AddRange(packagesConfigOperations);
279
- }
280
-
281
- // Some repos use a mix of packages.config and PackageReference
282
- var packageReferenceOperations = await PackageReferenceUpdater.UpdateDependencyAsync(repoRootPath, projectPath, dependencyName, previousDependencyVersion, newDependencyVersion, isTransitive, _experimentsManager, _logger);
283
- updateOperations.AddRange(packageReferenceOperations);
284
-
285
- // Update lock file if exists
286
- var packagesLockFullPath = additionalFiles.Where(p => Path.GetFileName(p).Equals(ProjectHelper.PackagesLockJsonFileName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
287
- if (packagesLockFullPath is not null)
288
- {
289
- await LockFileUpdater.UpdateLockFileAsync(repoRootPath, projectPath, _experimentsManager, _logger);
290
- }
291
-
292
- return updateOperations;
293
- }
294
110
  }