renovate 39.186.1 → 39.188.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/workers/global/config/parse/env.js +3 -2
- package/dist/workers/global/config/parse/env.js.map +1 -1
- package/dist/workers/global/config/parse/file.js +11 -7
- package/dist/workers/global/config/parse/file.js.map +1 -1
- package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
- package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
- package/package.json +3 -3
@@ -176,12 +176,13 @@ async function getConfig(inputEnv, configEnvKey = 'RENOVATE_CONFIG') {
|
|
176
176
|
}
|
177
177
|
}
|
178
178
|
}
|
179
|
-
|
179
|
+
const githubComToken = env.GITHUB_COM_TOKEN ?? env.RENOVATE_GITHUB_COM_TOKEN;
|
180
|
+
if (githubComToken) {
|
180
181
|
logger_1.logger.debug(`Converting GITHUB_COM_TOKEN into a global host rule`);
|
181
182
|
config.hostRules.push({
|
182
183
|
hostType: 'github',
|
183
184
|
matchHost: 'github.com',
|
184
|
-
token:
|
185
|
+
token: githubComToken,
|
185
186
|
});
|
186
187
|
}
|
187
188
|
// These env vars are deprecated and deleted to make sure they're not used
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/env.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport JSON5 from 'json5';\nimport { getOptions } from '../../../../config/options';\nimport type { AllConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { parseJson } from '../../../../util/common';\nimport { coersions } from './coersions';\nimport type { ParseConfigOptions } from './types';\nimport { migrateAndValidateConfig } from './util';\n\nfunction normalizePrefixes(\n env: NodeJS.ProcessEnv,\n prefix: string | undefined,\n): NodeJS.ProcessEnv {\n const result = { ...env };\n if (prefix) {\n for (const [key, val] of Object.entries(result)) {\n if (key.startsWith(prefix)) {\n const newKey = key.replace(prefix, 'RENOVATE_');\n result[newKey] = val;\n delete result[key];\n }\n }\n }\n return result;\n}\n\nexport function getEnvName(option: ParseConfigOptions): string {\n if (option.env === false) {\n return '';\n }\n if (option.env) {\n return option.env;\n }\n const nameWithUnderscores = option.name.replace(/([A-Z])/g, '_$1');\n return `RENOVATE_${nameWithUnderscores.toUpperCase()}`;\n}\n\nconst renameKeys = {\n aliases: 'registryAliases',\n azureAutoComplete: 'platformAutomerge', // migrate: azureAutoComplete\n gitLabAutomerge: 'platformAutomerge', // migrate: gitLabAutomerge\n mergeConfidenceApiBaseUrl: 'mergeConfidenceEndpoint',\n mergeConfidenceSupportedDatasources: 'mergeConfidenceDatasources',\n allowPostUpgradeCommandTemplating: 'allowCommandTemplating',\n allowedPostUpgradeCommands: 'allowedCommands',\n};\n\nfunction renameEnvKeys(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv {\n const result = { ...env };\n for (const [from, to] of Object.entries(renameKeys)) {\n const fromKey = getEnvName({ name: from });\n const toKey = getEnvName({ name: to });\n if (env[fromKey]) {\n result[toKey] = env[fromKey];\n delete result[fromKey];\n }\n }\n return result;\n}\n\nconst migratedKeysWithValues = [\n {\n oldName: 'recreateClosed',\n newName: 'recreateWhen',\n from: 'true',\n to: 'always',\n },\n {\n oldName: 'recreateClosed',\n newName: 'recreateWhen',\n from: 'false',\n to: 'auto',\n },\n];\n\nfunction massageEnvKeyValues(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv {\n const result = { ...env };\n for (const { oldName, newName, from, to } of migratedKeysWithValues) {\n const key = getEnvName({ name: oldName });\n if (env[key] !== undefined) {\n if (result[key] === from) {\n delete result[key];\n result[getEnvName({ name: newName })] = to;\n }\n }\n }\n return result;\n}\n\n// these experimental env vars have been converted into self-hosted config options\nconst convertedExperimentalEnvVars = [\n 'RENOVATE_X_AUTODISCOVER_REPO_SORT',\n 'RENOVATE_X_AUTODISCOVER_REPO_ORDER',\n 'RENOVATE_X_DOCKER_MAX_PAGES',\n 'RENOVATE_X_DELETE_CONFIG_FILE',\n 'RENOVATE_X_S3_ENDPOINT',\n 'RENOVATE_X_S3_PATH_STYLE',\n 'RENOVATE_X_MERGE_CONFIDENCE_API_BASE_URL',\n 'RENOVATE_X_MERGE_CONFIDENCE_SUPPORTED_DATASOURCES',\n];\n\n/**\n * Massages the experimental env vars which have been converted to config options\n *\n * e.g. RENOVATE_X_AUTODISCOVER_REPO_SORT -> RENOVATE_AUTODISCOVER_REPO_SORT\n */\nfunction massageConvertedExperimentalVars(\n env: NodeJS.ProcessEnv,\n): NodeJS.ProcessEnv {\n const result = { ...env };\n for (const key of convertedExperimentalEnvVars) {\n if (env[key] !== undefined) {\n const newKey = key.replace('RENOVATE_X_', 'RENOVATE_');\n result[newKey] = env[key];\n delete result[key];\n }\n }\n return result;\n}\n\nexport async function getConfig(\n inputEnv: NodeJS.ProcessEnv,\n configEnvKey = 'RENOVATE_CONFIG',\n): Promise<AllConfig> {\n const env = prepareEnv(inputEnv);\n const config = await parseAndValidateOrExit(env, configEnvKey);\n\n const options = getOptions();\n config.hostRules ??= [];\n\n for (const option of options) {\n if (option.env === false) {\n continue;\n }\n\n const envName = getEnvName(option);\n const envVal = env[envName];\n if (!envVal) {\n continue;\n }\n\n if (option.type === 'array' && option.subType === 'object') {\n try {\n const parsed = JSON5.parse(envVal);\n if (is.array(parsed)) {\n config[option.name] = parsed;\n } else {\n logger.debug(\n { val: envVal, envName },\n 'Could not parse object array',\n );\n }\n } catch {\n logger.debug(\n { val: envVal, envName },\n 'Could not parse environment variable',\n );\n }\n } else {\n const coerce = coersions[option.type];\n config[option.name] = coerce(envVal);\n if (option.name === 'dryRun') {\n if ((config[option.name] as string) === 'true') {\n logger.warn('env config dryRun property has been changed to full');\n config[option.name] = 'full';\n } else if ((config[option.name] as string) === 'false') {\n logger.warn('env config dryRun property has been changed to null');\n delete config[option.name];\n } else if ((config[option.name] as string) === 'null') {\n delete config[option.name];\n }\n }\n\n if (option.name === 'requireConfig') {\n if ((config[option.name] as string) === 'true') {\n logger.warn(\n 'env config requireConfig property has been changed to required',\n );\n config[option.name] = 'required';\n } else if ((config[option.name] as string) === 'false') {\n logger.warn(\n 'env config requireConfig property has been changed to optional',\n );\n config[option.name] = 'optional';\n }\n }\n\n if (option.name === 'platformCommit') {\n if ((config[option.name] as string) === 'true') {\n logger.warn(\n 'env config platformCommit property has been changed to enabled',\n );\n config[option.name] = 'enabled';\n } else if ((config[option.name] as string) === 'false') {\n logger.warn(\n 'env config platformCommit property has been changed to disabled',\n );\n config[option.name] = 'disabled';\n }\n }\n }\n }\n\n if (env.GITHUB_COM_TOKEN) {\n logger.debug(`Converting GITHUB_COM_TOKEN into a global host rule`);\n config.hostRules.push({\n hostType: 'github',\n matchHost: 'github.com',\n token: env.GITHUB_COM_TOKEN,\n });\n }\n\n // These env vars are deprecated and deleted to make sure they're not used\n const unsupportedEnv = [\n 'BITBUCKET_TOKEN',\n 'BITBUCKET_USERNAME',\n 'BITBUCKET_PASSWORD',\n 'GITHUB_ENDPOINT',\n 'GITHUB_TOKEN',\n 'GITLAB_ENDPOINT',\n 'GITLAB_TOKEN',\n 'VSTS_ENDPOINT',\n 'VSTS_TOKEN',\n ];\n\n for (const val of unsupportedEnv) {\n delete env[val];\n }\n\n return config;\n}\n\nexport function prepareEnv(inputEnv: NodeJS.ProcessEnv): NodeJS.ProcessEnv {\n let env = normalizePrefixes(inputEnv, inputEnv.ENV_PREFIX);\n env = massageConvertedExperimentalVars(env);\n env = renameEnvKeys(env);\n // massage the values of migrated configuration keys\n return massageEnvKeyValues(env);\n}\n\nexport async function parseAndValidateOrExit(\n env: NodeJS.ProcessEnv,\n configEnvKey: string,\n): Promise<AllConfig> {\n if (!env[configEnvKey]) {\n return {};\n }\n\n try {\n const config = parseJson(\n env[configEnvKey],\n `${configEnvKey}.env.json5`,\n ) as AllConfig;\n logger.debug({ config }, `Detected config in env ${configEnvKey}`);\n\n return await migrateAndValidateConfig(config, `${configEnvKey}`);\n } catch (err) {\n logger.fatal({ err }, `Could not parse ${configEnvKey}`);\n process.exit(1);\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/env.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport JSON5 from 'json5';\nimport { getOptions } from '../../../../config/options';\nimport type { AllConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { parseJson } from '../../../../util/common';\nimport { coersions } from './coersions';\nimport type { ParseConfigOptions } from './types';\nimport { migrateAndValidateConfig } from './util';\n\nfunction normalizePrefixes(\n env: NodeJS.ProcessEnv,\n prefix: string | undefined,\n): NodeJS.ProcessEnv {\n const result = { ...env };\n if (prefix) {\n for (const [key, val] of Object.entries(result)) {\n if (key.startsWith(prefix)) {\n const newKey = key.replace(prefix, 'RENOVATE_');\n result[newKey] = val;\n delete result[key];\n }\n }\n }\n return result;\n}\n\nexport function getEnvName(option: ParseConfigOptions): string {\n if (option.env === false) {\n return '';\n }\n if (option.env) {\n return option.env;\n }\n const nameWithUnderscores = option.name.replace(/([A-Z])/g, '_$1');\n return `RENOVATE_${nameWithUnderscores.toUpperCase()}`;\n}\n\nconst renameKeys = {\n aliases: 'registryAliases',\n azureAutoComplete: 'platformAutomerge', // migrate: azureAutoComplete\n gitLabAutomerge: 'platformAutomerge', // migrate: gitLabAutomerge\n mergeConfidenceApiBaseUrl: 'mergeConfidenceEndpoint',\n mergeConfidenceSupportedDatasources: 'mergeConfidenceDatasources',\n allowPostUpgradeCommandTemplating: 'allowCommandTemplating',\n allowedPostUpgradeCommands: 'allowedCommands',\n};\n\nfunction renameEnvKeys(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv {\n const result = { ...env };\n for (const [from, to] of Object.entries(renameKeys)) {\n const fromKey = getEnvName({ name: from });\n const toKey = getEnvName({ name: to });\n if (env[fromKey]) {\n result[toKey] = env[fromKey];\n delete result[fromKey];\n }\n }\n return result;\n}\n\nconst migratedKeysWithValues = [\n {\n oldName: 'recreateClosed',\n newName: 'recreateWhen',\n from: 'true',\n to: 'always',\n },\n {\n oldName: 'recreateClosed',\n newName: 'recreateWhen',\n from: 'false',\n to: 'auto',\n },\n];\n\nfunction massageEnvKeyValues(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv {\n const result = { ...env };\n for (const { oldName, newName, from, to } of migratedKeysWithValues) {\n const key = getEnvName({ name: oldName });\n if (env[key] !== undefined) {\n if (result[key] === from) {\n delete result[key];\n result[getEnvName({ name: newName })] = to;\n }\n }\n }\n return result;\n}\n\n// these experimental env vars have been converted into self-hosted config options\nconst convertedExperimentalEnvVars = [\n 'RENOVATE_X_AUTODISCOVER_REPO_SORT',\n 'RENOVATE_X_AUTODISCOVER_REPO_ORDER',\n 'RENOVATE_X_DOCKER_MAX_PAGES',\n 'RENOVATE_X_DELETE_CONFIG_FILE',\n 'RENOVATE_X_S3_ENDPOINT',\n 'RENOVATE_X_S3_PATH_STYLE',\n 'RENOVATE_X_MERGE_CONFIDENCE_API_BASE_URL',\n 'RENOVATE_X_MERGE_CONFIDENCE_SUPPORTED_DATASOURCES',\n];\n\n/**\n * Massages the experimental env vars which have been converted to config options\n *\n * e.g. RENOVATE_X_AUTODISCOVER_REPO_SORT -> RENOVATE_AUTODISCOVER_REPO_SORT\n */\nfunction massageConvertedExperimentalVars(\n env: NodeJS.ProcessEnv,\n): NodeJS.ProcessEnv {\n const result = { ...env };\n for (const key of convertedExperimentalEnvVars) {\n if (env[key] !== undefined) {\n const newKey = key.replace('RENOVATE_X_', 'RENOVATE_');\n result[newKey] = env[key];\n delete result[key];\n }\n }\n return result;\n}\n\nexport async function getConfig(\n inputEnv: NodeJS.ProcessEnv,\n configEnvKey = 'RENOVATE_CONFIG',\n): Promise<AllConfig> {\n const env = prepareEnv(inputEnv);\n const config = await parseAndValidateOrExit(env, configEnvKey);\n\n const options = getOptions();\n config.hostRules ??= [];\n\n for (const option of options) {\n if (option.env === false) {\n continue;\n }\n\n const envName = getEnvName(option);\n const envVal = env[envName];\n if (!envVal) {\n continue;\n }\n\n if (option.type === 'array' && option.subType === 'object') {\n try {\n const parsed = JSON5.parse(envVal);\n if (is.array(parsed)) {\n config[option.name] = parsed;\n } else {\n logger.debug(\n { val: envVal, envName },\n 'Could not parse object array',\n );\n }\n } catch {\n logger.debug(\n { val: envVal, envName },\n 'Could not parse environment variable',\n );\n }\n } else {\n const coerce = coersions[option.type];\n config[option.name] = coerce(envVal);\n if (option.name === 'dryRun') {\n if ((config[option.name] as string) === 'true') {\n logger.warn('env config dryRun property has been changed to full');\n config[option.name] = 'full';\n } else if ((config[option.name] as string) === 'false') {\n logger.warn('env config dryRun property has been changed to null');\n delete config[option.name];\n } else if ((config[option.name] as string) === 'null') {\n delete config[option.name];\n }\n }\n\n if (option.name === 'requireConfig') {\n if ((config[option.name] as string) === 'true') {\n logger.warn(\n 'env config requireConfig property has been changed to required',\n );\n config[option.name] = 'required';\n } else if ((config[option.name] as string) === 'false') {\n logger.warn(\n 'env config requireConfig property has been changed to optional',\n );\n config[option.name] = 'optional';\n }\n }\n\n if (option.name === 'platformCommit') {\n if ((config[option.name] as string) === 'true') {\n logger.warn(\n 'env config platformCommit property has been changed to enabled',\n );\n config[option.name] = 'enabled';\n } else if ((config[option.name] as string) === 'false') {\n logger.warn(\n 'env config platformCommit property has been changed to disabled',\n );\n config[option.name] = 'disabled';\n }\n }\n }\n }\n\n const githubComToken = env.GITHUB_COM_TOKEN ?? env.RENOVATE_GITHUB_COM_TOKEN;\n if (githubComToken) {\n logger.debug(`Converting GITHUB_COM_TOKEN into a global host rule`);\n config.hostRules.push({\n hostType: 'github',\n matchHost: 'github.com',\n token: githubComToken,\n });\n }\n\n // These env vars are deprecated and deleted to make sure they're not used\n const unsupportedEnv = [\n 'BITBUCKET_TOKEN',\n 'BITBUCKET_USERNAME',\n 'BITBUCKET_PASSWORD',\n 'GITHUB_ENDPOINT',\n 'GITHUB_TOKEN',\n 'GITLAB_ENDPOINT',\n 'GITLAB_TOKEN',\n 'VSTS_ENDPOINT',\n 'VSTS_TOKEN',\n ];\n\n for (const val of unsupportedEnv) {\n delete env[val];\n }\n\n return config;\n}\n\nexport function prepareEnv(inputEnv: NodeJS.ProcessEnv): NodeJS.ProcessEnv {\n let env = normalizePrefixes(inputEnv, inputEnv.ENV_PREFIX);\n env = massageConvertedExperimentalVars(env);\n env = renameEnvKeys(env);\n // massage the values of migrated configuration keys\n return massageEnvKeyValues(env);\n}\n\nexport async function parseAndValidateOrExit(\n env: NodeJS.ProcessEnv,\n configEnvKey: string,\n): Promise<AllConfig> {\n if (!env[configEnvKey]) {\n return {};\n }\n\n try {\n const config = parseJson(\n env[configEnvKey],\n `${configEnvKey}.env.json5`,\n ) as AllConfig;\n logger.debug({ config }, `Detected config in env ${configEnvKey}`);\n\n return await migrateAndValidateConfig(config, `${configEnvKey}`);\n } catch (err) {\n logger.fatal({ err }, `Could not parse ${configEnvKey}`);\n process.exit(1);\n }\n}\n"]}
|
@@ -25,11 +25,11 @@ async function getParsedContent(file) {
|
|
25
25
|
case '.json':
|
26
26
|
return (0, common_1.parseJson)(await (0, fs_1.readSystemFile)(file, 'utf8'), file);
|
27
27
|
case '.cjs':
|
28
|
+
case '.mjs':
|
28
29
|
case '.js': {
|
29
30
|
const tmpConfig = await import(upath_1.default.isAbsolute(file) ? file : `${process.cwd()}/${file}`);
|
30
|
-
|
31
|
-
|
32
|
-
: /* istanbul ignore next: hard to test */ tmpConfig;
|
31
|
+
/* v8 ignore next: not testable */
|
32
|
+
let config = tmpConfig.default ? tmpConfig.default : tmpConfig;
|
33
33
|
// Allow the config to be a function
|
34
34
|
if (is_1.default.function_(config)) {
|
35
35
|
config = config();
|
@@ -42,12 +42,17 @@ async function getParsedContent(file) {
|
|
42
42
|
}
|
43
43
|
async function getConfig(env) {
|
44
44
|
const configFile = env.RENOVATE_CONFIG_FILE ?? 'config.js';
|
45
|
-
|
45
|
+
const configFileExists = await fs_extra_1.default.pathExists(configFile);
|
46
|
+
if (env.RENOVATE_CONFIG_FILE && !configFileExists) {
|
46
47
|
logger_1.logger.fatal({ configFile }, `Custom config file specified in RENOVATE_CONFIG_FILE must exist`);
|
47
48
|
process.exit(1);
|
48
49
|
}
|
49
|
-
logger_1.logger.debug('Checking for config file in ' + configFile);
|
50
50
|
let config = {};
|
51
|
+
if (!configFileExists) {
|
52
|
+
logger_1.logger.debug('No config file found on disk - skipping');
|
53
|
+
return config;
|
54
|
+
}
|
55
|
+
logger_1.logger.debug('Checking for config file in ' + configFile);
|
51
56
|
try {
|
52
57
|
config = await getParsedContent(configFile);
|
53
58
|
}
|
@@ -69,8 +74,7 @@ async function getConfig(env) {
|
|
69
74
|
logger_1.logger.fatal('Error parsing config file');
|
70
75
|
process.exit(1);
|
71
76
|
}
|
72
|
-
|
73
|
-
logger_1.logger.debug('No config file found on disk - skipping');
|
77
|
+
logger_1.logger.debug('Error reading or parsing file - skipping');
|
74
78
|
}
|
75
79
|
if (is_1.default.nonEmptyObject(config.processEnv)) {
|
76
80
|
const exportedKeys = [];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/file.ts"],"names":[],"mappings":";;AAWA,4CA+BC;AAED,
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/file.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport fs from 'fs-extra';\nimport JSON5 from 'json5';\nimport upath from 'upath';\nimport type { AllConfig, RenovateConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { parseJson } from '../../../../util/common';\nimport { readSystemFile } from '../../../../util/fs';\nimport { parseSingleYaml } from '../../../../util/yaml';\nimport { migrateAndValidateConfig } from './util';\n\nexport async function getParsedContent(file: string): Promise<RenovateConfig> {\n if (upath.basename(file) === '.renovaterc') {\n return JSON5.parse(await readSystemFile(file, 'utf8'));\n }\n switch (upath.extname(file)) {\n case '.yaml':\n case '.yml':\n return parseSingleYaml(await readSystemFile(file, 'utf8'));\n case '.json5':\n case '.json':\n return parseJson(\n await readSystemFile(file, 'utf8'),\n file,\n ) as RenovateConfig;\n case '.cjs':\n case '.mjs':\n case '.js': {\n const tmpConfig = await import(\n upath.isAbsolute(file) ? file : `${process.cwd()}/${file}`\n );\n /* v8 ignore next: not testable */\n let config = tmpConfig.default ? tmpConfig.default : tmpConfig;\n // Allow the config to be a function\n if (is.function_(config)) {\n config = config();\n }\n return config;\n }\n default:\n throw new Error('Unsupported file type');\n }\n}\n\nexport async function getConfig(env: NodeJS.ProcessEnv): Promise<AllConfig> {\n const configFile = env.RENOVATE_CONFIG_FILE ?? 'config.js';\n\n const configFileExists = await fs.pathExists(configFile);\n if (env.RENOVATE_CONFIG_FILE && !configFileExists) {\n logger.fatal(\n { configFile },\n `Custom config file specified in RENOVATE_CONFIG_FILE must exist`,\n );\n process.exit(1);\n }\n\n let config: AllConfig = {};\n\n if (!configFileExists) {\n logger.debug('No config file found on disk - skipping');\n return config;\n }\n\n logger.debug('Checking for config file in ' + configFile);\n try {\n config = await getParsedContent(configFile);\n } catch (err) {\n if (err instanceof SyntaxError || err instanceof TypeError) {\n logger.fatal({ error: err.stack }, 'Could not parse config file');\n process.exit(1);\n } else if (err instanceof ReferenceError) {\n logger.fatal(\n `Error parsing config file due to unresolved variable(s): ${err.message}`,\n );\n process.exit(1);\n } else if (err.message === 'Unsupported file type') {\n logger.fatal(err.message);\n process.exit(1);\n } else if (env.RENOVATE_CONFIG_FILE) {\n logger.debug({ err }, 'Parse error');\n logger.fatal('Error parsing config file');\n process.exit(1);\n }\n logger.debug('Error reading or parsing file - skipping');\n }\n\n if (is.nonEmptyObject(config.processEnv)) {\n const exportedKeys = [];\n for (const [key, value] of Object.entries(config.processEnv)) {\n if (!is.nonEmptyString(value)) {\n logger.error({ key }, 'processEnv value is not a string.');\n continue;\n }\n\n exportedKeys.push(key);\n process.env[key] = value;\n }\n logger.debug(\n { keys: exportedKeys },\n 'processEnv keys were exported to env',\n );\n delete config.processEnv;\n }\n\n return migrateAndValidateConfig(config, configFile);\n}\n\nexport async function deleteNonDefaultConfig(\n env: NodeJS.ProcessEnv,\n deleteConfigFile: boolean,\n): Promise<void> {\n const configFile = env.RENOVATE_CONFIG_FILE;\n\n if (is.undefined(configFile) || is.emptyStringOrWhitespace(configFile)) {\n return;\n }\n\n if (!deleteConfigFile) {\n return;\n }\n\n if (!(await fs.pathExists(configFile))) {\n return;\n }\n\n try {\n await fs.remove(configFile);\n logger.trace({ path: configFile }, 'config file successfully deleted');\n } catch (err) {\n logger.warn({ err }, 'error deleting config file');\n }\n}\n"]}
|
@@ -41,7 +41,7 @@ function hostRulesFromEnv(env) {
|
|
41
41
|
const hostRules = [];
|
42
42
|
const npmEnvPrefixes = ['npm_config_', 'npm_lifecycle_', 'npm_package_'];
|
43
43
|
for (const envName of Object.keys(env).sort()) {
|
44
|
-
if (
|
44
|
+
if (['GITHUB_COM_TOKEN', 'RENOVATE_GITHUB_COM_TOKEN'].includes(envName)) {
|
45
45
|
continue;
|
46
46
|
}
|
47
47
|
if (npmEnvPrefixes.some((prefix) => envName.startsWith(prefix))) {
|
@@ -49,7 +49,11 @@ function hostRulesFromEnv(env) {
|
|
49
49
|
continue;
|
50
50
|
}
|
51
51
|
// Double underscore __ is used in place of hyphen -
|
52
|
-
const splitEnv = envName
|
52
|
+
const splitEnv = envName
|
53
|
+
.replace(/^RENOVATE_/, '')
|
54
|
+
.toLowerCase()
|
55
|
+
.replace(/__/g, '-')
|
56
|
+
.split('_');
|
53
57
|
const hostType = splitEnv.shift();
|
54
58
|
if (datasources.has(hostType) ||
|
55
59
|
(platforms.has(hostType) && splitEnv.length > 1)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"host-rules-from-env.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/host-rules-from-env.ts"],"names":[],"mappings":";;AAsDA,
|
1
|
+
{"version":3,"file":"host-rules-from-env.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/host-rules-from-env.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../../logger';\nimport { getDatasourceList } from '../../../../modules/datasource';\nimport type { HostRule } from '../../../../types';\n\ntype AuthField = 'token' | 'username' | 'password';\n\ntype HttpsAuthField =\n | 'httpscertificate'\n | 'httpsprivatekey'\n | 'httpscertificateauthority';\n\nfunction isAuthField(x: unknown): x is AuthField {\n return x === 'token' || x === 'username' || x === 'password';\n}\n\nfunction isHttpsAuthField(x: unknown): x is HttpsAuthField {\n return (\n x === 'httpscertificate' ||\n x === 'httpsprivatekey' ||\n x === 'httpscertificateauthority'\n );\n}\n\nfunction restoreHttpsAuthField(x: HttpsAuthField | AuthField): string {\n switch (x) {\n case 'httpsprivatekey':\n return 'httpsPrivateKey';\n case 'httpscertificate':\n return 'httpsCertificate';\n case 'httpscertificateauthority':\n return 'httpsCertificateAuthority';\n }\n\n return x;\n}\n\nfunction setHostRuleValue(\n rule: HostRule,\n key: string,\n value: string | undefined,\n): void {\n if (value !== undefined) {\n switch (key) {\n case 'token':\n case 'username':\n case 'password':\n case 'httpsCertificateAuthority':\n case 'httpsCertificate':\n case 'httpsPrivateKey':\n rule[key] = value;\n }\n }\n}\n\nexport function hostRulesFromEnv(env: NodeJS.ProcessEnv): HostRule[] {\n const datasources = new Set(getDatasourceList());\n const platforms = new Set(['github']);\n\n const hostRules: HostRule[] = [];\n\n const npmEnvPrefixes = ['npm_config_', 'npm_lifecycle_', 'npm_package_'];\n\n for (const envName of Object.keys(env).sort()) {\n if (['GITHUB_COM_TOKEN', 'RENOVATE_GITHUB_COM_TOKEN'].includes(envName)) {\n continue;\n }\n if (npmEnvPrefixes.some((prefix) => envName.startsWith(prefix))) {\n logger.trace('Ignoring npm env: ' + envName);\n continue;\n }\n // Double underscore __ is used in place of hyphen -\n const splitEnv = envName\n .replace(/^RENOVATE_/, '')\n .toLowerCase()\n .replace(/__/g, '-')\n .split('_');\n const hostType = splitEnv.shift()!;\n if (\n datasources.has(hostType) ||\n (platforms.has(hostType) && splitEnv.length > 1)\n ) {\n let suffix = splitEnv.pop()!;\n if (isAuthField(suffix) || isHttpsAuthField(suffix)) {\n suffix = restoreHttpsAuthField(suffix);\n\n let matchHost: string | undefined = undefined;\n const rule: HostRule = {};\n setHostRuleValue(rule, suffix, env[envName]);\n if (splitEnv.length === 0) {\n // host-less rule\n } else if (splitEnv.length === 1) {\n logger.warn({ env: envName }, 'Cannot parse env');\n continue;\n } else {\n matchHost = splitEnv.join('.');\n }\n const existingRule = hostRules.find(\n (hr) => hr.hostType === hostType && hr.matchHost === matchHost,\n );\n logger.debug(`Converting ${envName} into a global host rule`);\n if (existingRule) {\n // Add current field to existing rule\n setHostRuleValue(existingRule, suffix, env[envName]);\n } else {\n // Create a new rule\n const newRule: HostRule = {\n hostType,\n };\n if (matchHost) {\n newRule.matchHost = matchHost;\n }\n setHostRuleValue(newRule, suffix, env[envName]);\n hostRules.push(newRule);\n }\n }\n }\n }\n return hostRules;\n}\n"]}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "renovate",
|
3
3
|
"description": "Automated dependency updates. Flexible so you don't need to be.",
|
4
|
-
"version": "39.
|
4
|
+
"version": "39.188.0",
|
5
5
|
"type": "commonjs",
|
6
6
|
"bin": {
|
7
7
|
"renovate": "dist/renovate.js",
|
@@ -142,7 +142,7 @@
|
|
142
142
|
},
|
143
143
|
"volta": {
|
144
144
|
"node": "22.14.0",
|
145
|
-
"pnpm": "10.5.
|
145
|
+
"pnpm": "10.5.1"
|
146
146
|
},
|
147
147
|
"dependencies": {
|
148
148
|
"@aws-sdk/client-codecommit": "3.738.0",
|
@@ -348,7 +348,7 @@
|
|
348
348
|
"vitest": "3.0.7",
|
349
349
|
"vitest-mock-extended": "3.0.1"
|
350
350
|
},
|
351
|
-
"packageManager": "pnpm@10.5.
|
351
|
+
"packageManager": "pnpm@10.5.1",
|
352
352
|
"files": [
|
353
353
|
"dist",
|
354
354
|
"renovate-schema.json"
|