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
@@ -72,7 +72,7 @@ public class ModifiedFilesTracker
|
|
72
72
|
}
|
73
73
|
}
|
74
74
|
|
75
|
-
public async Task<ImmutableArray<DependencyFile>> StopTrackingAsync()
|
75
|
+
public async Task<ImmutableArray<DependencyFile>> StopTrackingAsync(bool restoreOriginalContents = false)
|
76
76
|
{
|
77
77
|
if (_currentDiscoveryResult is null)
|
78
78
|
{
|
@@ -108,6 +108,14 @@ public class ModifiedFilesTracker
|
|
108
108
|
Content = reportedContent,
|
109
109
|
ContentEncoding = encoding,
|
110
110
|
};
|
111
|
+
|
112
|
+
if (restoreOriginalContents)
|
113
|
+
{
|
114
|
+
var originalRawContent = originalContent
|
115
|
+
.SetEOL(_originalDependencyFileEOFs[repoFullPath])
|
116
|
+
.SetBOM(_originalDependencyFileBOMs[repoFullPath]);
|
117
|
+
await File.WriteAllBytesAsync(localFullPath, originalRawContent);
|
118
|
+
}
|
111
119
|
}
|
112
120
|
}
|
113
121
|
|
@@ -57,6 +57,12 @@ internal class DetailedPullRequestBodyGenerator : IPullRequestBodyGenerator, IDi
|
|
57
57
|
}
|
58
58
|
else
|
59
59
|
{
|
60
|
+
if (sourceUrl.EndsWith(".git"))
|
61
|
+
{
|
62
|
+
// remove the trailing .git if present
|
63
|
+
sourceUrl = sourceUrl[..^4];
|
64
|
+
}
|
65
|
+
|
60
66
|
// build detailed report
|
61
67
|
var packageNameIndex = reportText.IndexOf(updateOperation.DependencyName, StringComparison.OrdinalIgnoreCase);
|
62
68
|
if (packageNameIndex >= 0)
|
@@ -152,7 +152,7 @@ public class RunWorker
|
|
152
152
|
}
|
153
153
|
}
|
154
154
|
|
155
|
-
internal static DependencyInfo GetDependencyInfo(Job job, Dependency dependency)
|
155
|
+
internal static DependencyInfo GetDependencyInfo(Job job, Dependency dependency, bool allowCooldown)
|
156
156
|
{
|
157
157
|
var dependencyVersion = NuGetVersion.Parse(dependency.Version!);
|
158
158
|
var securityAdvisories = job.SecurityAdvisories.Where(s => s.DependencyName.Equals(dependency.Name, StringComparison.OrdinalIgnoreCase)).ToArray();
|
@@ -175,6 +175,12 @@ public class RunWorker
|
|
175
175
|
.SelectMany(c => c.UpdateTypes ?? [])
|
176
176
|
.Distinct()
|
177
177
|
.ToImmutableArray();
|
178
|
+
|
179
|
+
// while it would be nice to lift the cooldown options into the IgnoredUpdateTypes field, we don't know the
|
180
|
+
// publish date of the packages, so we have to pass along the whole object for the version finder to sort out
|
181
|
+
var includeCooldown = allowCooldown &&
|
182
|
+
job.Cooldown is not null &&
|
183
|
+
job.Cooldown.AppliesToPackage(dependency.Name);
|
178
184
|
var dependencyInfo = new DependencyInfo()
|
179
185
|
{
|
180
186
|
Name = dependency.Name,
|
@@ -183,6 +189,7 @@ public class RunWorker
|
|
183
189
|
IgnoredVersions = ignoredVersions,
|
184
190
|
Vulnerabilities = vulnerabilities,
|
185
191
|
IgnoredUpdateTypes = ignoredUpdateTypes,
|
192
|
+
Cooldown = includeCooldown ? job.Cooldown : null,
|
186
193
|
};
|
187
194
|
return dependencyInfo;
|
188
195
|
}
|
@@ -67,7 +67,7 @@ internal class CreateSecurityUpdatePullRequestHandler : IUpdateHandler
|
|
67
67
|
{
|
68
68
|
var dependencyName = dependencyGroupToUpdate.Key;
|
69
69
|
var vulnerableCandidateDependenciesToUpdate = dependencyGroupToUpdate.Value
|
70
|
-
.Select(o => (o.ProjectPath, o.Dependency, RunWorker.GetDependencyInfo(job, o.Dependency)))
|
70
|
+
.Select(o => (o.ProjectPath, o.Dependency, RunWorker.GetDependencyInfo(job, o.Dependency, allowCooldown: false)))
|
71
71
|
.Where(set => set.Item3.IsVulnerable)
|
72
72
|
.ToArray();
|
73
73
|
var vulnerableDependenciesToUpdate = vulnerableCandidateDependenciesToUpdate
|
data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Run/UpdateHandlers/GroupUpdateAllVersionsHandler.cs
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
using System.Collections.Immutable;
|
2
2
|
|
3
|
-
using
|
4
|
-
|
3
|
+
using NuGetUpdater.Core.Discover;
|
5
4
|
using NuGetUpdater.Core.Run.ApiModel;
|
6
5
|
using NuGetUpdater.Core.Updater;
|
7
6
|
|
@@ -105,7 +104,7 @@ internal class GroupUpdateAllVersionsHandler : IUpdateHandler
|
|
105
104
|
continue;
|
106
105
|
}
|
107
106
|
|
108
|
-
var dependencyInfo = RunWorker.GetDependencyInfo(job, dependency);
|
107
|
+
var dependencyInfo = RunWorker.GetDependencyInfo(job, dependency, allowCooldown: experimentsManager.EnableCooldown);
|
109
108
|
var analysisResult = await analyzeWorker.RunAsync(repoContentsPath.FullName, discoveryResult, dependencyInfo);
|
110
109
|
if (analysisResult.Error is not null)
|
111
110
|
{
|
@@ -183,86 +182,99 @@ internal class GroupUpdateAllVersionsHandler : IUpdateHandler
|
|
183
182
|
return;
|
184
183
|
}
|
185
184
|
|
186
|
-
var tracker = new ModifiedFilesTracker(originalRepoContentsPath, logger);
|
187
|
-
await tracker.StartTrackingAsync(discoveryResult);
|
188
|
-
|
189
185
|
var updatedDependencyList = RunWorker.GetUpdatedDependencyListFromDiscovery(discoveryResult, originalRepoContentsPath.FullName, logger);
|
190
186
|
await apiHandler.UpdateDependencyList(updatedDependencyList);
|
191
187
|
|
192
|
-
var
|
193
|
-
var
|
194
|
-
var updateOperationsToPerform = RunWorker.GetUpdateOperations(discoveryResult).ToArray();
|
195
|
-
foreach (var (projectPath, dependency) in updateOperationsToPerform)
|
188
|
+
var updateOperationsToPerformByDependency = CollectUpdateOperationsByDependency(discoveryResult);
|
189
|
+
foreach (var sameDependencySet in updateOperationsToPerformByDependency)
|
196
190
|
{
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
191
|
+
logger.Info($"Starting dependency update for {sameDependencySet.Key}");
|
192
|
+
var updateOperationsPerformed = new List<UpdateOperationBase>();
|
193
|
+
var updatedDependencies = new List<ReportedDependency>();
|
194
|
+
var tracker = new ModifiedFilesTracker(originalRepoContentsPath, logger);
|
195
|
+
await tracker.StartTrackingAsync(discoveryResult);
|
201
196
|
|
202
|
-
|
197
|
+
foreach (var (projectPath, dependency) in sameDependencySet)
|
203
198
|
{
|
204
|
-
|
205
|
-
|
206
|
-
|
199
|
+
if (!job.IsUpdatePermitted(dependency))
|
200
|
+
{
|
201
|
+
continue;
|
202
|
+
}
|
207
203
|
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
await apiHandler.RecordUpdateJobError(analysisResult.Error, logger);
|
214
|
-
return;
|
215
|
-
}
|
204
|
+
if (job.IsDependencyIgnoredByNameOnly(dependency.Name))
|
205
|
+
{
|
206
|
+
logger.Info($"Skipping ignored dependency {dependency.Name}.");
|
207
|
+
continue;
|
208
|
+
}
|
216
209
|
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
210
|
+
var dependencyInfo = RunWorker.GetDependencyInfo(job, dependency, allowCooldown: experimentsManager.EnableCooldown);
|
211
|
+
var analysisResult = await analyzeWorker.RunAsync(repoContentsPath.FullName, discoveryResult, dependencyInfo);
|
212
|
+
if (analysisResult.Error is not null)
|
213
|
+
{
|
214
|
+
logger.Error($"Error analyzing {dependency.Name} in {projectPath}: {analysisResult.Error.GetReport()}");
|
215
|
+
await apiHandler.RecordUpdateJobError(analysisResult.Error, logger);
|
216
|
+
return;
|
217
|
+
}
|
222
218
|
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
continue;
|
229
|
-
}
|
219
|
+
if (!analysisResult.CanUpdate)
|
220
|
+
{
|
221
|
+
logger.Info($"No updatable version found for {dependency.Name} in {projectPath}.");
|
222
|
+
continue;
|
223
|
+
}
|
230
224
|
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
225
|
+
var projectDiscovery = discoveryResult.GetProjectDiscoveryFromPath(projectPath);
|
226
|
+
var updaterResult = await updaterWorker.RunAsync(repoContentsPath.FullName, projectPath, dependency.Name, dependency.Version!, analysisResult.UpdatedVersion, dependency.IsTransitive);
|
227
|
+
if (updaterResult.Error is not null)
|
228
|
+
{
|
229
|
+
await apiHandler.RecordUpdateJobError(updaterResult.Error, logger);
|
230
|
+
continue;
|
231
|
+
}
|
232
|
+
|
233
|
+
if (updaterResult.UpdateOperations.Length == 0)
|
234
|
+
{
|
235
|
+
continue;
|
236
|
+
}
|
235
237
|
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
238
|
+
var patchedUpdateOperations = RunWorker.PatchInOldVersions(updaterResult.UpdateOperations, projectDiscovery);
|
239
|
+
var updatedDependenciesForThis = patchedUpdateOperations
|
240
|
+
.Select(o => o.ToReportedDependency(projectPath, updatedDependencyList.Dependencies, analysisResult.UpdatedDependencies))
|
241
|
+
.ToArray();
|
240
242
|
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
243
|
+
updatedDependencies.AddRange(updatedDependenciesForThis);
|
244
|
+
updateOperationsPerformed.AddRange(patchedUpdateOperations);
|
245
|
+
foreach (var o in patchedUpdateOperations)
|
246
|
+
{
|
247
|
+
logger.Info($"Update operation performed: {o.GetReport(includeFileNames: true)}");
|
248
|
+
}
|
246
249
|
}
|
247
|
-
}
|
248
250
|
|
249
|
-
|
250
|
-
|
251
|
-
{
|
252
|
-
var commitMessage = PullRequestTextGenerator.GetPullRequestCommitMessage(job, [.. updateOperationsPerformed], null);
|
253
|
-
var prTitle = PullRequestTextGenerator.GetPullRequestTitle(job, [.. updateOperationsPerformed], null);
|
254
|
-
var prBody = await PullRequestTextGenerator.GetPullRequestBodyAsync(job, [.. updateOperationsPerformed], [.. updatedDependencies], experimentsManager);
|
255
|
-
await apiHandler.CreatePullRequest(new CreatePullRequest()
|
251
|
+
var updatedDependencyFiles = await tracker.StopTrackingAsync(restoreOriginalContents: true);
|
252
|
+
if (updateOperationsPerformed.Count > 0)
|
256
253
|
{
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
254
|
+
var commitMessage = PullRequestTextGenerator.GetPullRequestCommitMessage(job, [.. updateOperationsPerformed], null);
|
255
|
+
var prTitle = PullRequestTextGenerator.GetPullRequestTitle(job, [.. updateOperationsPerformed], null);
|
256
|
+
var prBody = await PullRequestTextGenerator.GetPullRequestBodyAsync(job, [.. updateOperationsPerformed], [.. updatedDependencies], experimentsManager);
|
257
|
+
await apiHandler.CreatePullRequest(new CreatePullRequest()
|
258
|
+
{
|
259
|
+
Dependencies = [.. updatedDependencies],
|
260
|
+
UpdatedDependencyFiles = [.. updatedDependencyFiles],
|
261
|
+
BaseCommitSha = baseCommitSha,
|
262
|
+
CommitMessage = commitMessage,
|
263
|
+
PrTitle = prTitle,
|
264
|
+
PrBody = prBody,
|
265
|
+
DependencyGroup = null,
|
266
|
+
});
|
267
|
+
}
|
265
268
|
}
|
266
269
|
}
|
267
270
|
}
|
271
|
+
|
272
|
+
internal static ImmutableArray<IGrouping<string, (string ProjectPath, Dependency Dependency)>> CollectUpdateOperationsByDependency(WorkspaceDiscoveryResult discoveryResult)
|
273
|
+
{
|
274
|
+
var updateOperationsToPerform = RunWorker.GetUpdateOperations(discoveryResult).ToArray();
|
275
|
+
var updateOperationsToPerformByDependency = updateOperationsToPerform
|
276
|
+
.GroupBy(o => $"{o.Dependency.Name}/{o.Dependency.Version}".ToLowerInvariant())
|
277
|
+
.ToImmutableArray();
|
278
|
+
return updateOperationsToPerformByDependency;
|
279
|
+
}
|
268
280
|
}
|
@@ -93,7 +93,7 @@ internal class RefreshGroupUpdatePullRequestHandler : IUpdateHandler
|
|
93
93
|
var dependencyName = dependencyGroupToUpdate.Key;
|
94
94
|
var relevantDependenciesToUpdate = dependencyGroupToUpdate.Value
|
95
95
|
.Where(o => !job.IsDependencyIgnoredByNameOnly(o.Dependency.Name))
|
96
|
-
.Select(o => (o.ProjectPath, o.Dependency, RunWorker.GetDependencyInfo(job, o.Dependency)))
|
96
|
+
.Select(o => (o.ProjectPath, o.Dependency, RunWorker.GetDependencyInfo(job, o.Dependency, allowCooldown: experimentsManager.EnableCooldown)))
|
97
97
|
.ToArray();
|
98
98
|
|
99
99
|
foreach (var (projectPath, dependency, dependencyInfo) in relevantDependenciesToUpdate)
|
@@ -82,7 +82,7 @@ internal class RefreshSecurityUpdatePullRequestHandler : IUpdateHandler
|
|
82
82
|
var dependencyName = dependencyGroupToUpdate.Key;
|
83
83
|
var vulnerableDependenciesToUpdate = dependencyGroupToUpdate.Value
|
84
84
|
.Where(o => !job.IsDependencyIgnoredByNameOnly(o.Dependency.Name))
|
85
|
-
.Select(o => (o.ProjectPath, o.Dependency, RunWorker.GetDependencyInfo(job, o.Dependency)))
|
85
|
+
.Select(o => (o.ProjectPath, o.Dependency, RunWorker.GetDependencyInfo(job, o.Dependency, allowCooldown: false)))
|
86
86
|
.Where(set => set.Item3.IsVulnerable)
|
87
87
|
.ToArray();
|
88
88
|
|
@@ -81,7 +81,7 @@ internal class RefreshVersionUpdatePullRequestHandler : IUpdateHandler
|
|
81
81
|
var dependencyName = dependencyUpdatesToPerform.Key;
|
82
82
|
var dependencyInfosToUpdate = dependencyUpdatesToPerform.Value
|
83
83
|
.Where(o => !job.IsDependencyIgnoredByNameOnly(o.Dependency.Name))
|
84
|
-
.Select(o => (o.ProjectPath, o.Dependency, RunWorker.GetDependencyInfo(job, o.Dependency)))
|
84
|
+
.Select(o => (o.ProjectPath, o.Dependency, RunWorker.GetDependencyInfo(job, o.Dependency, allowCooldown: experimentsManager.EnableCooldown)))
|
85
85
|
.ToArray();
|
86
86
|
|
87
87
|
foreach (var (projectPath, dependency, dependencyInfo) in dependencyInfosToUpdate)
|
@@ -38,13 +38,17 @@ public class FileWriterWorker
|
|
38
38
|
var nonProjectUpdates = await ProcessNonProjectUpdatesAsync(repoContentsPath, initialProjectDirectory, dependencyName, oldDependencyVersion, newDependencyVersion);
|
39
39
|
updateOperations.AddRange(nonProjectUpdates);
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
|
41
|
+
var projectExtension = projectPath.Extension.ToLowerInvariant();
|
42
|
+
if (XmlFileWriter.SupportedProjectFileExtensions.Contains(projectExtension))
|
43
|
+
{
|
44
|
+
// then try packages.config updates
|
45
|
+
var packagesConfigUpdates = await ProcessPackagesConfigUpdatesAsync(repoContentsPath, projectPath, dependencyName, oldDependencyVersion, newDependencyVersion);
|
46
|
+
updateOperations.AddRange(packagesConfigUpdates);
|
44
47
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
+
// then try project updates
|
49
|
+
var packageReferenceUpdates = await ProcessPackageReferenceUpdatesAsync(repoContentsPath, initialProjectDirectory, projectPath, dependencyName, newDependencyVersion);
|
50
|
+
updateOperations.AddRange(packageReferenceUpdates);
|
51
|
+
}
|
48
52
|
|
49
53
|
var normalizedUpdateOperations = UpdateOperationBase.NormalizeUpdateOperationCollection(repoContentsPath.FullName, updateOperations);
|
50
54
|
return normalizedUpdateOperations;
|
@@ -250,7 +254,6 @@ public class FileWriterWorker
|
|
250
254
|
initialTopLevelDependencies,
|
251
255
|
desiredDependencies,
|
252
256
|
resolvedDependencies.Value,
|
253
|
-
new ExperimentsManager(),
|
254
257
|
_logger);
|
255
258
|
var filteredUpdateOperations = computedUpdateOperations
|
256
259
|
.Where(op =>
|