/// <summary> /// Remove package retention settings. /// </summary> public static async Task <bool> DisableRetention(SleetContext context) { var exitCode = true; var log = context.Log; var feedSettings = context.SourceSettings; feedSettings.RetentionMaxStableVersions = null; feedSettings.RetentionMaxPrereleaseVersions = null; await FeedSettingsUtility.SaveSettings(context.Source, feedSettings, log, context.Token); // Commit changes to source exitCode = await context.Source.Commit(log, context.Token); if (exitCode) { await log.LogAsync(LogLevel.Minimal, "Package retention disabled."); } else { await log.LogAsync(LogLevel.Error, "Failed to disable retention settings."); } return(exitCode); }
/// <summary> /// Enable package retention and update settings. /// </summary> public static async Task <bool> UpdateRetentionSettings(SleetContext context, int stableVersionMax, int prereleaseVersionMax) { var exitCode = true; var log = context.Log; var feedSettings = context.SourceSettings; feedSettings.RetentionMaxStableVersions = stableVersionMax; feedSettings.RetentionMaxPrereleaseVersions = prereleaseVersionMax; await FeedSettingsUtility.SaveSettings(context.Source, feedSettings, log, context.Token); // Commit changes to source exitCode = await context.Source.Commit(log, context.Token); if (exitCode) { await log.LogAsync(LogLevel.Minimal, $"Successfully updated package retention settings. Stable: {stableVersionMax} Prerelease: {prereleaseVersionMax}."); await log.LogAsync(LogLevel.Minimal, $"Run prune to apply the new settings and remove packages from the feed."); } else { await log.LogAsync(LogLevel.Error, "Failed to update package retention settings."); } return(exitCode); }
private static async Task <bool> CreateSettingsAsync(ISleetFileSystem source, FeedSettings feedSettings, ILogger log, CancellationToken token, DateTimeOffset now, JObject serviceIndexJson) { AddServiceIndexEntry(source.BaseURI, "sleet.settings.json", "http://schema.emgarten.com/sleet#SettingsFile/1.0.0", "Sleet feed settings.", serviceIndexJson); // Create new file. var result = await CreateFromTemplateAsync(source, log, now, "Settings", "sleet.settings.json", token); // Write out the current settings. await FeedSettingsUtility.SaveSettings(source, feedSettings, log, token); return(result); }