diff --git a/docs/configuration.md b/docs/configuration.md index 160cd05626fb7376d105772dbf03f7f0d8e58d14..8683cc05b865d556cd98ce5fc0b1c274108e8530 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -474,7 +474,7 @@ Obviously, you can't set repository or package file location with this method. "prBody": "This {{#if isGitHub}}Pull{{else}}Merge{{/if}} Request updates `package.json` lock files to use the latest dependency versions.\n\n{{#if schedule}}\n**Note**: This PR was created on a configured schedule (\"{{schedule}}\"{{#if timezone}} in timezone `{{timezone}}`{{/if}}) and will not receive updates outside those times.\n{{/if}}\n\n{{#if hasErrors}}\n\n---\n\n### Errors\n\nRenovate encountered some errors when processing your repository, so you are being notified here even if they do not directly apply to this PR.\n\n{{#each errors as |error|}}\n- `{{error.depName}}`: {{error.message}}\n{{/each}}\n{{/if}}\n\n{{#if hasWarnings}}\n\n---\n\n### Warnings\n\nPlease make sure the following warnings are safe to ignore:\n\n{{#each warnings as |warning|}}\n- `{{warning.depName}}`: {{warning.message}}\n{{/each}}\n{{/if}}\n\n---\n\nThis {{#if isGitHub}}PR{{else}}MR{{/if}} has been generated by [Renovate Bot](https://renovateapp.com).", "schedule": "before 5am on monday" }</pre></td> - <td></td> + <td>`RENOVATE_LOCK_FILE_MAINTENANCE`</td> <td><td> </tr> <tr> diff --git a/lib/config/definitions.js b/lib/config/definitions.js index 68eb7a605d3322886c0c2e02c19d411187bdc24a..389f016e25eefd9bec0ebdfaaac48a464a69fca3 100644 --- a/lib/config/definitions.js +++ b/lib/config/definitions.js @@ -313,7 +313,6 @@ const options = [ schedule: 'before 5am on monday', }, cli: false, - env: false, mergeable: true, }, // Dependency Groups diff --git a/lib/config/env.js b/lib/config/env.js index 50d1004293c45417f837f9ad4e24c42656a7f125..5d8db9d41c5ab98f0283edbf0e65f2c6cbed21db 100644 --- a/lib/config/env.js +++ b/lib/config/env.js @@ -26,6 +26,7 @@ function getConfig(env) { list: val => val.split(',').map(el => el.trim()), string: val => val, integer: val => parseInt(val, 10), + json: val => JSON.parse(val), }; options.forEach(option => { diff --git a/lib/workers/package-file/index.js b/lib/workers/package-file/index.js index 35099da4fc38c3acbe5c64bf30e0c1e2674073a1..80a30cdc0846ddc346ec92548fb45b59970ae4ca 100644 --- a/lib/workers/package-file/index.js +++ b/lib/workers/package-file/index.js @@ -70,21 +70,22 @@ async function renovatePackageFile(packageFileConfig) { if (await config.api.getFileContent(packageLockFileName)) { config.hasPackageLock = true; } - if (config.hasYarnLock || config.hasPackageLock) { + if ( + config.lockFileMaintenance.enabled && + (config.hasYarnLock || config.hasPackageLock) + ) { + logger.debug('lockFileMaintenance enabled'); // Maintain lock files const lockFileMaintenanceConf = configParser.mergeChildConfig( config, config.lockFileMaintenance ); - if (lockFileMaintenanceConf.enabled) { - logger.debug('lockFileMaintenance enabled'); - lockFileMaintenanceConf.type = 'lockFileMaintenance'; - logger.debug( - { config: lockFileMaintenanceConf }, - `lockFileMaintenanceConf` - ); - upgrades.push(lockFileMaintenanceConf); - } + lockFileMaintenanceConf.type = 'lockFileMaintenance'; + logger.debug( + { config: lockFileMaintenanceConf }, + `lockFileMaintenanceConf` + ); + upgrades.push(lockFileMaintenanceConf); } logger.info('Finished processing package file'); diff --git a/test/config/env.spec.js b/test/config/env.spec.js index 0b09cfd80a8d2493b7208be0aa0850c4d8871165..f454a8ad7a6a938bd8be25f1ab1dd5ca8337c9a6 100644 --- a/test/config/env.spec.js +++ b/test/config/env.spec.js @@ -34,6 +34,10 @@ describe('config/env', () => { const envParam = { RENOVATE_GITHUB_APP_ID: 5 }; env.getConfig(envParam).should.eql({ githubAppId: 5 }); }); + it('supports json', () => { + const envParam = { RENOVATE_LOCK_FILE_MAINTENANCE: '{}' }; + expect(env.getConfig(envParam)).toEqual({ lockFileMaintenance: {} }); + }); }); describe('.getEnvName(definition)', () => { it('returns empty', () => {