diff --git a/lib/config/migration.spec.ts b/lib/config/migration.spec.ts index 7eab999f78163af817fec31eeb8794aec1761ba1..28055dcc932c04aa9a3d855a6063b0749a0e40b7 100644 --- a/lib/config/migration.spec.ts +++ b/lib/config/migration.spec.ts @@ -304,6 +304,23 @@ describe('config/migration', () => { migratedConfig.lockFileMaintenance.packageRules[0].respectLatest ).toBe(false); }); + + it('migrates packageRules objects', () => { + const config = { + packageRules: { + packageNames: ['typescript'], + updateTypes: ['major'], + commitMessage: + 'fix(package): update peerDependency to accept typescript ^{{newVersion}}', + }, + } as any; + const { isMigrated, migratedConfig } = configMigration.migrateConfig( + config, + defaultConfig + ); + expect(isMigrated).toBe(true); + expect(migratedConfig.packageRules).toHaveLength(1); + }); it('migrates node to travis', () => { const config: RenovateConfig = { node: { diff --git a/lib/config/migration.ts b/lib/config/migration.ts index cb2cc7e308d8bc888d0e166aa1f21f6017700ab3..e7b10acfa68246445d90a66b0813b85290244b56 100644 --- a/lib/config/migration.ts +++ b/lib/config/migration.ts @@ -109,6 +109,8 @@ export function migrateConfig( } else if (parentKey === 'hostRules' && key === 'host') { migratedConfig.hostName = val; delete migratedConfig.host; + } else if (key === 'packageRules' && is.plainObject(val)) { + migratedConfig.packageRules = [val]; } else if (key === 'packageFiles' && is.array(val)) { const fileList = []; for (const packageFile of val) {