diff --git a/lib/config/index.js b/lib/config/index.js index 2b394074c74c4fb448551ca678035f71155dc98b..e24189da4c95c9e15018a03bafa88831866bbc59 100644 --- a/lib/config/index.js +++ b/lib/config/index.js @@ -1,5 +1,6 @@ const logger = require('winston'); const program = require('commander'); +const stringify = require('json-stringify-pretty-compact'); let config = null; @@ -14,14 +15,14 @@ function parseConfigs() { const envConfig = require('./env'); /* eslint-enable global-require */ - logger.debug(`Default config = ${JSON.stringify(defaultConfig)}`); - logger.debug(`File config = ${JSON.stringify(fileConfig)}`); - logger.debug(`CLI config: ${JSON.stringify(cliConfig)}`); - logger.debug(`Env config: ${JSON.stringify(envConfig)}`); + logger.debug(`Default config = ${redact(defaultConfig)}`); + logger.debug(`File config = ${redact(fileConfig)}`); + logger.debug(`CLI config: ${redact(cliConfig)}`); + logger.debug(`Env config: ${redact(envConfig)}`); // Get global config config = Object.assign({}, defaultConfig, fileConfig, envConfig, cliConfig); - logger.debug(`raw config=${JSON.stringify(config)}`); + logger.debug(`raw config=${redact(config)}`); // Set log level logger.level = config.logLevel; @@ -63,7 +64,7 @@ function parseConfigs() { }); }); // Print config - logger.verbose(`config=${JSON.stringify(config)}`); + logger.verbose(`config=${redact(config)}`); } function getCascadedConfig(repo, packageFile) { @@ -81,6 +82,15 @@ function getGlobalConfig() { return config; } +function redact(inputConfig) { + const tokenConfig = {}; + if (inputConfig.token) { + tokenConfig.token = `${inputConfig.token.substr(0, 4)}${new Array(inputConfig.token.length - 3).join('*')}`; + } + const redactedConfig = Object.assign({}, inputConfig, tokenConfig); + return stringify(redactedConfig); +} + module.exports = { getCascadedConfig, getGlobalConfig, diff --git a/package.json b/package.json index f47cc8a16940e919c42f2d79b5d54b61be6b1db6..2fe91c2a4e560405ba44b3259200b54dcbd5e236 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "gh-got": "5.0.0", "got": "6.7.1", "handlebars": "4.0.6", + "json-stringify-pretty-compact": "^1.0.2", "lodash": "4.17.4", "semver": "5.3.0", "semver-stable": "2.0.4",