diff --git a/app/config/env.js b/app/config/env.js index 0fff85fda37b94f803485430683bf9b230e6fb3e..dd5c554af023ad5a5c2281ce5925acb334886dc0 100644 --- a/app/config/env.js +++ b/app/config/env.js @@ -1,10 +1,39 @@ const logger = require('winston'); +const program = require('commander'); const config = {}; +if (process.env.RENOVATE_REPOSITORIES) { + config.repositories = list(process.env.RENOVATE_REPOSITORIES); +} +if (process.env.RENOVATE_DEP_TYPES) { + config.depTypes = list(process.env.RENOVATE_DEP_TYPES); +} +if (process.env.RENOVATE_FORCE) { + config.force = process.env.RENOVATE_FORCE; +} +if (process.env.RENOVATE_IGNORE_DEPS) { + config.ignoreDeps = list(process.env.RENOVATE_IGNORE_DEPS); +} +if (process.env.RENOVATE_LABELS) { + config.labels = list(process.env.RENOVATE_LABELS); +} if (process.env.LOG_LEVEL) { config.logLevel = process.env.LOG_LEVEL; } +if (process.env.RENOVATE_PACKAGE_FILES) { + if (config.repositories) { + // We can't use package files if we don't have repositories + config.repositories = config.repositories.map(repository => ({ + repository, + packageFiles: list(process.env.RENOVATE_PACKAGE_FILES), + })); + } else { + logger.error('Defining package files via env requires at least one repository too'); + program.outputHelp(); + process.exit(1); + } +} if (process.env.RENOVATE_TOKEN) { config.token = process.env.RENOVATE_TOKEN; } @@ -12,3 +41,7 @@ if (process.env.RENOVATE_TOKEN) { logger.debug(`Env config: ${JSON.stringify(config)}`); module.exports = config; + +function list(val) { + return val.split(','); +} diff --git a/app/config/index.js b/app/config/index.js index 0b6dc0b532ed7a8c4d93148c616078bb28c11048..e5c6c336105fdd82327fd10e9e79932401042ee0 100644 --- a/app/config/index.js +++ b/app/config/index.js @@ -6,8 +6,8 @@ logger.debug('Generating config'); // Get configs const defaultConfig = require('./default'); const fileConfig = require('./file'); -const envConfig = require('./env'); const cliConfig = require('./cli'); +const envConfig = require('./env'); // Get global config const config = Object.assign({}, defaultConfig, fileConfig, envConfig, cliConfig);