renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
208 lines • 11.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MigrationsService = void 0;
const tslib_1 = require("tslib");
const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
const dequal_1 = require("dequal");
const remove_property_migration_1 = require("./base/remove-property-migration");
const rename_property_migration_1 = require("./base/rename-property-migration");
const automerge_major_migration_1 = require("./custom/automerge-major-migration");
const automerge_migration_1 = require("./custom/automerge-migration");
const automerge_minor_migration_1 = require("./custom/automerge-minor-migration");
const automerge_patch_migration_1 = require("./custom/automerge-patch-migration");
const automerge_type_migration_1 = require("./custom/automerge-type-migration");
const azure_gitlab_automerge_migration_1 = require("./custom/azure-gitlab-automerge-migration");
const base_branch_migration_1 = require("./custom/base-branch-migration");
const binary_source_migration_1 = require("./custom/binary-source-migration");
const branch_name_migration_1 = require("./custom/branch-name-migration");
const branch_prefix_migration_1 = require("./custom/branch-prefix-migration");
const compatibility_migration_1 = require("./custom/compatibility-migration");
const composer_ignore_platform_reqs_migration_1 = require("./custom/composer-ignore-platform-reqs-migration");
const custom_managers_migration_1 = require("./custom/custom-managers-migration");
const datasource_migration_1 = require("./custom/datasource-migration");
const dep_types_migration_1 = require("./custom/dep-types-migration");
const dry_run_migration_1 = require("./custom/dry-run-migration");
const enabled_managers_migration_1 = require("./custom/enabled-managers-migration");
const extends_migration_1 = require("./custom/extends-migration");
const fetch_release_notes_migration_1 = require("./custom/fetch-release-notes-migration");
const file_match_migration_1 = require("./custom/file-match-migration");
const go_mod_tidy_migration_1 = require("./custom/go-mod-tidy-migration");
const host_rules_migration_1 = require("./custom/host-rules-migration");
const ignore_node_modules_migration_1 = require("./custom/ignore-node-modules-migration");
const ignore_npmrc_file_migration_1 = require("./custom/ignore-npmrc-file-migration");
const include_forks_migration_1 = require("./custom/include-forks-migration");
const match_datasources_migration_1 = require("./custom/match-datasources-migration");
const match_managers_migration_1 = require("./custom/match-managers-migration");
const match_strings_migration_1 = require("./custom/match-strings-migration");
const node_migration_1 = require("./custom/node-migration");
const package_files_migration_1 = require("./custom/package-files-migration");
const package_name_migration_1 = require("./custom/package-name-migration");
const package_pattern_migration_1 = require("./custom/package-pattern-migration");
const package_rules_migration_1 = require("./custom/package-rules-migration");
const packages_migration_1 = require("./custom/packages-migration");
const path_rules_migration_1 = require("./custom/path-rules-migration");
const pin_versions_migration_1 = require("./custom/pin-versions-migration");
const platform_commit_migration_1 = require("./custom/platform-commit-migration");
const post_update_options_migration_1 = require("./custom/post-update-options-migration");
const rebase_conflicted_prs_migration_1 = require("./custom/rebase-conflicted-prs-migration");
const rebase_stale_prs_migration_1 = require("./custom/rebase-stale-prs-migration");
const recreate_closed_migration_1 = require("./custom/recreate-closed-migration");
const renovate_fork_migration_1 = require("./custom/renovate-fork-migration");
const require_config_migration_1 = require("./custom/require-config-migration");
const required_status_checks_migration_1 = require("./custom/required-status-checks-migration");
const schedule_migration_1 = require("./custom/schedule-migration");
const semantic_commits_migration_1 = require("./custom/semantic-commits-migration");
const semantic_prefix_migration_1 = require("./custom/semantic-prefix-migration");
const separate_major_release_migration_1 = require("./custom/separate-major-release-migration");
const separate_multiple_major_migration_1 = require("./custom/separate-multiple-major-migration");
const stability_days_migration_1 = require("./custom/stability-days-migration");
const suppress_notifications_migration_1 = require("./custom/suppress-notifications-migration");
const trust_level_migration_1 = require("./custom/trust-level-migration");
const unpublish_safe_migration_1 = require("./custom/unpublish-safe-migration");
const upgrade_in_range_migration_1 = require("./custom/upgrade-in-range-migration");
const version_strategy_migration_1 = require("./custom/version-strategy-migration");
class MigrationsService {
static removedProperties = new Set([
'allowCommandTemplating',
'allowPostUpgradeCommandTemplating',
'deepExtract',
'gitFs',
'groupBranchName',
'groupCommitMessage',
'groupPrBody',
'groupPrTitle',
'lazyGrouping',
'maintainYarnLock',
'raiseDeprecationWarnings',
'statusCheckVerify',
'supportPolicy',
'transitiveRemediation',
'yarnCacheFolder',
'yarnMaintenanceBranchName',
'yarnMaintenanceCommitMessage',
'yarnMaintenancePrBody',
'yarnMaintenancePrTitle',
]);
static renamedProperties = new Map([
['adoptium-java', 'java-version'],
['allowedPostUpgradeCommands', 'allowedCommands'],
['azureAutoApprove', 'autoApprove'],
['customChangelogUrl', 'changelogUrl'],
['endpoints', 'hostRules'],
['excludedPackageNames', 'excludePackageNames'],
['exposeEnv', 'exposeAllEnv'],
['keepalive', 'keepAlive'],
['managerBranchPrefix', 'additionalBranchPrefix'],
['multipleMajorPrs', 'separateMultipleMajor'],
['separatePatchReleases', 'separateMinorPatch'],
['versionScheme', 'versioning'],
['lookupNameTemplate', 'packageNameTemplate'],
['aliases', 'registryAliases'],
['masterIssue', 'dependencyDashboard'],
['masterIssueApproval', 'dependencyDashboardApproval'],
['masterIssueAutoclose', 'dependencyDashboardAutoclose'],
['masterIssueHeader', 'dependencyDashboardHeader'],
['masterIssueFooter', 'dependencyDashboardFooter'],
['masterIssueTitle', 'dependencyDashboardTitle'],
['masterIssueLabels', 'dependencyDashboardLabels'],
['regexManagers', 'customManagers'],
]);
static customMigrations = [
automerge_major_migration_1.AutomergeMajorMigration,
automerge_migration_1.AutomergeMigration,
automerge_minor_migration_1.AutomergeMinorMigration,
automerge_patch_migration_1.AutomergePatchMigration,
automerge_type_migration_1.AutomergeTypeMigration,
azure_gitlab_automerge_migration_1.AzureGitLabAutomergeMigration,
base_branch_migration_1.BaseBranchMigration,
binary_source_migration_1.BinarySourceMigration,
branch_name_migration_1.BranchNameMigration,
branch_prefix_migration_1.BranchPrefixMigration,
compatibility_migration_1.CompatibilityMigration,
composer_ignore_platform_reqs_migration_1.ComposerIgnorePlatformReqsMigration,
enabled_managers_migration_1.EnabledManagersMigration,
extends_migration_1.ExtendsMigration,
go_mod_tidy_migration_1.GoModTidyMigration,
host_rules_migration_1.HostRulesMigration,
ignore_node_modules_migration_1.IgnoreNodeModulesMigration,
ignore_npmrc_file_migration_1.IgnoreNpmrcFileMigration,
include_forks_migration_1.IncludeForksMigration,
match_strings_migration_1.MatchStringsMigration,
package_name_migration_1.PackageNameMigration,
package_pattern_migration_1.PackagePatternMigration,
packages_migration_1.PackagesMigration,
path_rules_migration_1.PathRulesMigration,
pin_versions_migration_1.PinVersionsMigration,
post_update_options_migration_1.PostUpdateOptionsMigration,
rebase_conflicted_prs_migration_1.RebaseConflictedPrs,
rebase_stale_prs_migration_1.RebaseStalePrsMigration,
renovate_fork_migration_1.RenovateForkMigration,
required_status_checks_migration_1.RequiredStatusChecksMigration,
schedule_migration_1.ScheduleMigration,
semantic_commits_migration_1.SemanticCommitsMigration,
separate_major_release_migration_1.SeparateMajorReleasesMigration,
separate_multiple_major_migration_1.SeparateMultipleMajorMigration,
suppress_notifications_migration_1.SuppressNotificationsMigration,
trust_level_migration_1.TrustLevelMigration,
unpublish_safe_migration_1.UnpublishSafeMigration,
upgrade_in_range_migration_1.UpgradeInRangeMigration,
version_strategy_migration_1.VersionStrategyMigration,
dry_run_migration_1.DryRunMigration,
require_config_migration_1.RequireConfigMigration,
package_files_migration_1.PackageFilesMigration,
dep_types_migration_1.DepTypesMigration,
package_rules_migration_1.PackageRulesMigration,
node_migration_1.NodeMigration,
semantic_prefix_migration_1.SemanticPrefixMigration,
match_datasources_migration_1.MatchDatasourcesMigration,
datasource_migration_1.DatasourceMigration,
recreate_closed_migration_1.RecreateClosedMigration,
stability_days_migration_1.StabilityDaysMigration,
fetch_release_notes_migration_1.FetchReleaseNotesMigration,
match_managers_migration_1.MatchManagersMigration,
custom_managers_migration_1.CustomManagersMigration,
platform_commit_migration_1.PlatformCommitMigration,
file_match_migration_1.FileMatchMigration,
];
static run(originalConfig, parentKey) {
const migratedConfig = {};
const migrations = this.getMigrations(originalConfig, migratedConfig);
for (const [key, value] of Object.entries(originalConfig)) {
migratedConfig[key] ??= value;
const migration = MigrationsService.getMigration(migrations, key);
if (migration) {
migration.run(value, key, parentKey);
if (migration.deprecated) {
delete migratedConfig[key];
}
}
}
return migratedConfig;
}
static isMigrated(originalConfig, migratedConfig) {
return !(0, dequal_1.dequal)(originalConfig, migratedConfig);
}
static getMigrations(originalConfig, migratedConfig) {
const migrations = [];
for (const propertyName of MigrationsService.removedProperties) {
migrations.push(new remove_property_migration_1.RemovePropertyMigration(propertyName, originalConfig, migratedConfig));
}
for (const [oldPropertyName, newPropertyName,] of MigrationsService.renamedProperties.entries()) {
migrations.push(new rename_property_migration_1.RenamePropertyMigration(oldPropertyName, newPropertyName, originalConfig, migratedConfig));
}
for (const CustomMigration of this.customMigrations) {
migrations.push(new CustomMigration(originalConfig, migratedConfig));
}
return migrations;
}
static getMigration(migrations, key) {
return migrations.find((migration) => {
if (is_1.default.regExp(migration.propertyName)) {
return migration.propertyName.test(key);
}
return migration.propertyName === key;
});
}
}
exports.MigrationsService = MigrationsService;
//# sourceMappingURL=migrations-service.js.map