mirror of https://github.com/renovatebot/renovate
81 lines
2.1 KiB
TypeScript
81 lines
2.1 KiB
TypeScript
import type { RenovateConfig, RepoGlobalConfig } from './types';
|
|
|
|
export class GlobalConfig {
|
|
// TODO: once global config work is complete, add a test to make sure this list includes all options with globalOnly=true (#9603)
|
|
private static readonly OPTIONS: (keyof RepoGlobalConfig)[] = [
|
|
'allowedEnv',
|
|
'allowCustomCrateRegistries',
|
|
'allowedHeaders',
|
|
'allowedPostUpgradeCommands',
|
|
'allowPlugins',
|
|
'allowPostUpgradeCommandTemplating',
|
|
'allowScripts',
|
|
'binarySource',
|
|
'cacheDir',
|
|
'cacheHardTtlMinutes',
|
|
'cacheTtlOverride',
|
|
'containerbaseDir',
|
|
'customEnvVariables',
|
|
'dockerChildPrefix',
|
|
'dockerCliOptions',
|
|
'dockerSidecarImage',
|
|
'dockerUser',
|
|
'dryRun',
|
|
'encryptedWarning',
|
|
'exposeAllEnv',
|
|
'executionTimeout',
|
|
'githubTokenWarn',
|
|
'localDir',
|
|
'migratePresets',
|
|
'presetCachePersistence',
|
|
'privateKey',
|
|
'privateKeyOld',
|
|
'gitTimeout',
|
|
'platform',
|
|
'endpoint',
|
|
'httpCacheTtlDays',
|
|
'autodiscoverRepoSort',
|
|
'autodiscoverRepoOrder',
|
|
'userAgent',
|
|
'dockerMaxPages',
|
|
's3Endpoint',
|
|
's3PathStyle',
|
|
'cachePrivatePackages',
|
|
];
|
|
|
|
private static config: RepoGlobalConfig = {};
|
|
|
|
static get(): RepoGlobalConfig;
|
|
static get<Key extends keyof RepoGlobalConfig>(
|
|
key: Key,
|
|
): RepoGlobalConfig[Key];
|
|
static get<Key extends keyof RepoGlobalConfig>(
|
|
key: Key,
|
|
defaultValue: Required<RepoGlobalConfig>[Key],
|
|
): Required<RepoGlobalConfig>[Key];
|
|
static get<Key extends keyof RepoGlobalConfig>(
|
|
key?: Key,
|
|
defaultValue?: RepoGlobalConfig[Key],
|
|
): RepoGlobalConfig | RepoGlobalConfig[Key] {
|
|
return key
|
|
? (GlobalConfig.config[key] ?? defaultValue)
|
|
: GlobalConfig.config;
|
|
}
|
|
|
|
static set(config: RenovateConfig | RepoGlobalConfig): RenovateConfig {
|
|
GlobalConfig.reset();
|
|
|
|
const result = { ...config };
|
|
for (const option of GlobalConfig.OPTIONS) {
|
|
GlobalConfig.config[option] = config[option] as never;
|
|
delete result[option];
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
static reset(): void {
|
|
GlobalConfig.config = {};
|
|
}
|
|
}
|