renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
201 lines (200 loc) • 9.39 kB
JavaScript
import { RemovePropertyMigration } from "./base/remove-property-migration.js";
import { RenamePropertyMigration } from "./base/rename-property-migration.js";
import { AutomergeMajorMigration } from "./custom/automerge-major-migration.js";
import { AutomergeMigration } from "./custom/automerge-migration.js";
import { AutomergeMinorMigration } from "./custom/automerge-minor-migration.js";
import { AutomergePatchMigration } from "./custom/automerge-patch-migration.js";
import { AutomergeTypeMigration } from "./custom/automerge-type-migration.js";
import { AzureGitLabAutomergeMigration } from "./custom/azure-gitlab-automerge-migration.js";
import { BaseBranchMigration } from "./custom/base-branch-migration.js";
import { BinarySourceMigration } from "./custom/binary-source-migration.js";
import { BranchNameMigration } from "./custom/branch-name-migration.js";
import { BranchPrefixMigration } from "./custom/branch-prefix-migration.js";
import { CompatibilityMigration } from "./custom/compatibility-migration.js";
import { ComposerIgnorePlatformReqsMigration } from "./custom/composer-ignore-platform-reqs-migration.js";
import { CustomManagersMigration } from "./custom/custom-managers-migration.js";
import { DatasourceMigration } from "./custom/datasource-migration.js";
import { DepTypesMigration } from "./custom/dep-types-migration.js";
import { DryRunMigration } from "./custom/dry-run-migration.js";
import { EnabledManagersMigration } from "./custom/enabled-managers-migration.js";
import { ExtendsMigration } from "./custom/extends-migration.js";
import { FetchReleaseNotesMigration } from "./custom/fetch-release-notes-migration.js";
import { FileMatchMigration } from "./custom/file-match-migration.js";
import { GoModTidyMigration } from "./custom/go-mod-tidy-migration.js";
import { HostRulesMigration } from "./custom/host-rules-migration.js";
import { IgnoreNodeModulesMigration } from "./custom/ignore-node-modules-migration.js";
import { IgnoreNpmrcFileMigration } from "./custom/ignore-npmrc-file-migration.js";
import { IncludeForksMigration } from "./custom/include-forks-migration.js";
import { MatchDatasourcesMigration } from "./custom/match-datasources-migration.js";
import { MatchManagersMigration } from "./custom/match-managers-migration.js";
import { MatchStringsMigration } from "./custom/match-strings-migration.js";
import { NodeMigration } from "./custom/node-migration.js";
import { PackageFilesMigration } from "./custom/package-files-migration.js";
import { PackageNameMigration } from "./custom/package-name-migration.js";
import { PackagePatternMigration } from "./custom/package-pattern-migration.js";
import { PackageRulesMigration } from "./custom/package-rules-migration.js";
import { PackagesMigration } from "./custom/packages-migration.js";
import { PathRulesMigration } from "./custom/path-rules-migration.js";
import { PinVersionsMigration } from "./custom/pin-versions-migration.js";
import { PlatformCommitMigration } from "./custom/platform-commit-migration.js";
import { PostUpdateOptionsMigration } from "./custom/post-update-options-migration.js";
import { RebaseConflictedPrs } from "./custom/rebase-conflicted-prs-migration.js";
import { RebaseStalePrsMigration } from "./custom/rebase-stale-prs-migration.js";
import { RecreateClosedMigration } from "./custom/recreate-closed-migration.js";
import { RenovateForkMigration } from "./custom/renovate-fork-migration.js";
import { RequireConfigMigration } from "./custom/require-config-migration.js";
import { RequiredStatusChecksMigration } from "./custom/required-status-checks-migration.js";
import { ScheduleMigration } from "./custom/schedule-migration.js";
import { SemanticCommitsMigration } from "./custom/semantic-commits-migration.js";
import { SemanticPrefixMigration } from "./custom/semantic-prefix-migration.js";
import { SeparateMajorReleasesMigration } from "./custom/separate-major-release-migration.js";
import { SeparateMultipleMajorMigration } from "./custom/separate-multiple-major-migration.js";
import { StabilityDaysMigration } from "./custom/stability-days-migration.js";
import { SuppressNotificationsMigration } from "./custom/suppress-notifications-migration.js";
import { TrustLevelMigration } from "./custom/trust-level-migration.js";
import { UnpublishSafeMigration } from "./custom/unpublish-safe-migration.js";
import { UpdateLockFilesMigration } from "./custom/update-lock-files-migration.js";
import { UpgradeInRangeMigration } from "./custom/upgrade-in-range-migration.js";
import { VersionStrategyMigration } from "./custom/version-strategy-migration.js";
import { isRegExp } from "@sindresorhus/is";
import { dequal } from "dequal";
//#region lib/config/migrations/migrations-service.ts
var MigrationsService = 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"],
["baseBranches", "baseBranchPatterns"],
["renovate-config-presets", "renovate-config"]
]);
static customMigrations = [
AutomergeMajorMigration,
AutomergeMigration,
AutomergeMinorMigration,
AutomergePatchMigration,
AutomergeTypeMigration,
AzureGitLabAutomergeMigration,
BaseBranchMigration,
BinarySourceMigration,
BranchNameMigration,
BranchPrefixMigration,
CompatibilityMigration,
ComposerIgnorePlatformReqsMigration,
EnabledManagersMigration,
ExtendsMigration,
GoModTidyMigration,
HostRulesMigration,
IgnoreNodeModulesMigration,
IgnoreNpmrcFileMigration,
IncludeForksMigration,
MatchStringsMigration,
PackageNameMigration,
PackagePatternMigration,
PackagesMigration,
PathRulesMigration,
PinVersionsMigration,
PostUpdateOptionsMigration,
RebaseConflictedPrs,
RebaseStalePrsMigration,
RenovateForkMigration,
RequiredStatusChecksMigration,
ScheduleMigration,
SemanticCommitsMigration,
SeparateMajorReleasesMigration,
SeparateMultipleMajorMigration,
SuppressNotificationsMigration,
TrustLevelMigration,
UnpublishSafeMigration,
UpgradeInRangeMigration,
VersionStrategyMigration,
DryRunMigration,
RequireConfigMigration,
PackageFilesMigration,
DepTypesMigration,
PackageRulesMigration,
NodeMigration,
SemanticPrefixMigration,
MatchDatasourcesMigration,
DatasourceMigration,
RecreateClosedMigration,
StabilityDaysMigration,
FetchReleaseNotesMigration,
MatchManagersMigration,
CustomManagersMigration,
PlatformCommitMigration,
FileMatchMigration,
UpdateLockFilesMigration
];
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 !dequal(originalConfig, migratedConfig);
}
static getMigrations(originalConfig, migratedConfig) {
const migrations = [];
for (const propertyName of MigrationsService.removedProperties) migrations.push(new RemovePropertyMigration(propertyName, originalConfig, migratedConfig));
for (const [oldPropertyName, newPropertyName] of MigrationsService.renamedProperties.entries()) migrations.push(new 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 (isRegExp(migration.propertyName)) return migration.propertyName.test(key);
return migration.propertyName === key;
});
}
};
//#endregion
export { MigrationsService };
//# sourceMappingURL=migrations-service.js.map