From 5a70fa880515a02d77d3980b13a51ec1dbea976e Mon Sep 17 00:00:00 2001 From: Maksim <m.v.sharipov@gmail.com> Date: Mon, 11 Apr 2022 18:27:56 +0200 Subject: [PATCH] refactor(migrations): gitLabAutomerge and azureAutoComplete (#14975) --- lib/config/migration.ts | 5 -- .../azure-gitlab-automerge-migration.spec.ts | 67 +++++++++++++++++++ .../azure-gitlab-automerge-migration.ts | 12 ++++ lib/config/migrations/migrations-service.ts | 2 + 4 files changed, 81 insertions(+), 5 deletions(-) create mode 100644 lib/config/migrations/custom/azure-gitlab-automerge-migration.spec.ts create mode 100644 lib/config/migrations/custom/azure-gitlab-automerge-migration.ts diff --git a/lib/config/migration.ts b/lib/config/migration.ts index 38b7637d1a..d7619dbf07 100644 --- a/lib/config/migration.ts +++ b/lib/config/migration.ts @@ -189,11 +189,6 @@ export function migrateConfig(config: RenovateConfig): MigratedConfig { if (subMigrate.isMigrated) { migratedConfig[key] = subMigrate.migratedConfig; } - } else if (key === 'azureAutoComplete' || key === 'gitLabAutomerge') { - if (migratedConfig[key] !== undefined) { - migratedConfig.platformAutomerge = migratedConfig[key]; - } - delete migratedConfig[key]; } const migratedTemplates = { diff --git a/lib/config/migrations/custom/azure-gitlab-automerge-migration.spec.ts b/lib/config/migrations/custom/azure-gitlab-automerge-migration.spec.ts new file mode 100644 index 0000000000..bc581e0848 --- /dev/null +++ b/lib/config/migrations/custom/azure-gitlab-automerge-migration.spec.ts @@ -0,0 +1,67 @@ +import { AzureGitLabAutomergeMigration } from './azure-gitlab-automerge-migration'; + +describe('config/migrations/custom/azure-gitlab-automerge-migration', () => { + it('should migrate non undefined gitLabAutomerge', () => { + expect(AzureGitLabAutomergeMigration).toMigrate( + { + gitLabAutomerge: true, + }, + { + platformAutomerge: true, + } + ); + }); + + it('should just remove undefined gitLabAutomerge', () => { + expect(AzureGitLabAutomergeMigration).toMigrate( + { + gitLabAutomerge: undefined, + }, + {} + ); + }); + + it('should override platformAutomerge when gitLabAutomerge defined', () => { + expect(AzureGitLabAutomergeMigration).toMigrate( + { + gitLabAutomerge: true, + platformAutomerge: false, + }, + { + platformAutomerge: true, + } + ); + }); + + it('should migrate non undefined azureAutoComplete', () => { + expect(AzureGitLabAutomergeMigration).toMigrate( + { + azureAutoComplete: true, + }, + { + platformAutomerge: true, + } + ); + }); + + it('should just remove undefined azureAutoComplete', () => { + expect(AzureGitLabAutomergeMigration).toMigrate( + { + azureAutoComplete: undefined, + }, + {} + ); + }); + + it('should override platformAutomerge when azureAutoComplete defined', () => { + expect(AzureGitLabAutomergeMigration).toMigrate( + { + azureAutoComplete: true, + platformAutomerge: false, + }, + { + platformAutomerge: true, + } + ); + }); +}); diff --git a/lib/config/migrations/custom/azure-gitlab-automerge-migration.ts b/lib/config/migrations/custom/azure-gitlab-automerge-migration.ts new file mode 100644 index 0000000000..ee437d3c79 --- /dev/null +++ b/lib/config/migrations/custom/azure-gitlab-automerge-migration.ts @@ -0,0 +1,12 @@ +import { AbstractMigration } from '../base/abstract-migration'; + +export class AzureGitLabAutomergeMigration extends AbstractMigration { + override readonly deprecated = true; + override readonly propertyName = /^azureAutoComplete$|^gitLabAutomerge$/; + + override run(value: unknown): void { + if (value !== undefined) { + this.setHard('platformAutomerge', value); + } + } +} diff --git a/lib/config/migrations/migrations-service.ts b/lib/config/migrations/migrations-service.ts index 2c5dda0f3b..dc4b214036 100644 --- a/lib/config/migrations/migrations-service.ts +++ b/lib/config/migrations/migrations-service.ts @@ -8,6 +8,7 @@ import { AutomergeMigration } from './custom/automerge-migration'; import { AutomergeMinorMigration } from './custom/automerge-minor-migration'; import { AutomergePatchMigration } from './custom/automerge-patch-migration'; import { AutomergeTypeMigration } from './custom/automerge-type-migration'; +import { AzureGitLabAutomergeMigration } from './custom/azure-gitlab-automerge-migration'; import { BaseBranchMigration } from './custom/base-branch-migration'; import { BinarySourceMigration } from './custom/binary-source-migration'; import { BranchNameMigration } from './custom/branch-name-migration'; @@ -77,6 +78,7 @@ export class MigrationsService { AutomergeMinorMigration, AutomergePatchMigration, AutomergeTypeMigration, + AzureGitLabAutomergeMigration, BaseBranchMigration, BinarySourceMigration, BranchNameMigration, -- GitLab