Skip to content

Commit

Permalink
refactor: GlobalConfig type
Browse files Browse the repository at this point in the history
  • Loading branch information
rarkins committed Feb 5, 2021
1 parent 25f43fd commit 3756f2a
Show file tree
Hide file tree
Showing 10 changed files with 43 additions and 34 deletions.
3 changes: 2 additions & 1 deletion lib/config/cli.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Command } from 'commander';
import { version } from '../../package.json';
import { GlobalConfig } from './common';
import { RenovateOptions, getOptions } from './definitions';

export function getCliName(option: Partial<RenovateOptions>): string {
Expand All @@ -14,7 +15,7 @@ export interface RenovateCliConfig extends Record<string, any> {
repositories?: string[];
}

export function getConfig(input: string[]): RenovateCliConfig {
export function getConfig(input: string[]): GlobalConfig {
// massage migrated configuration keys
const argv = input
.map((a) =>
Expand Down
25 changes: 16 additions & 9 deletions lib/config/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,19 @@ export interface RenovateSharedConfig {
unicodeEmoji?: boolean;
}

// Config options used only within the global worker
export interface GlobalAdminConfig {
autodiscover?: boolean;
autodiscoverFilter?: string;
logFile?: string;
logFileLevel?: LogLevel;
logLevel?: LogLevel;
redisUrl?: string;
repositories?: RenovateRepository[];
trustLevel?: 'low' | 'high';
}

// Config options used within the repository worker, but non-user configurable
export interface RepoAdminConfig {
allowPostUpgradeCommandTemplating?: boolean;
allowedPostUpgradeCommands?: string[];
Expand All @@ -71,9 +84,6 @@ export interface RepoAdminConfig {
}

export interface RenovateAdminConfig {
autodiscover?: boolean;
autodiscoverFilter?: string;

baseDir?: string;
cacheDir?: string;
configWarningReuseIssue?: boolean;
Expand All @@ -85,9 +95,7 @@ export interface RenovateAdminConfig {
endpoint?: string;

localDir?: string;
logFile?: string;
logFileLevel?: LogLevel;
logLevel?: LogLevel;

logContext?: string;

onboarding?: boolean;
Expand All @@ -101,10 +109,7 @@ export interface RenovateAdminConfig {
postUpdateOptions?: string[];
privateKey?: string | Buffer;
privateKeyPath?: string;
repositories?: RenovateRepository[];
requireConfig?: boolean;
trustLevel?: 'low' | 'high';
redisUrl?: string;
gitPrivateKey?: string;
}

Expand Down Expand Up @@ -184,6 +189,8 @@ export interface RenovateConfig
fetchReleaseNotes?: boolean;
}

export interface GlobalConfig extends RenovateConfig, GlobalAdminConfig {}

export interface AssigneesAndReviewersConfig {
assigneesFromCodeOwners?: boolean;
assignees?: string[];
Expand Down
6 changes: 3 additions & 3 deletions lib/config/defaults.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { RenovateConfig } from './common';
import { GlobalConfig } from './common';
import { RenovateOptions, getOptions } from './definitions';

const defaultValues = {
Expand All @@ -14,9 +14,9 @@ export function getDefault(option: RenovateOptions): any {
: option.default;
}

export function getConfig(): RenovateConfig {
export function getConfig(): GlobalConfig {
const options = getOptions();
const config: RenovateConfig = {};
const config: GlobalConfig = {};
options.forEach((option) => {
if (!option.parent) {
config[option.name] = getDefault(option);
Expand Down
6 changes: 3 additions & 3 deletions lib/config/env.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import is from '@sindresorhus/is';
import { PLATFORM_TYPE_GITHUB } from '../constants/platforms';
import * as datasourceDocker from '../datasource/docker';
import { logger } from '../logger';
import { RenovateConfig } from './common';
import { GlobalConfig } from './common';
import { RenovateOptions, getOptions } from './definitions';

export function getEnvName(option: Partial<RenovateOptions>): string {
Expand All @@ -17,10 +17,10 @@ export function getEnvName(option: Partial<RenovateOptions>): string {
return `RENOVATE_${nameWithUnderscores.toUpperCase()}`;
}

export function getConfig(env: NodeJS.ProcessEnv): RenovateConfig {
export function getConfig(env: NodeJS.ProcessEnv): GlobalConfig {
const options = getOptions();

const config: RenovateConfig = { hostRules: [] };
const config: GlobalConfig = { hostRules: [] };

const coersions = {
boolean: (val: string): boolean => val === 'true',
Expand Down
6 changes: 3 additions & 3 deletions lib/config/file.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import upath from 'upath';
import { logger } from '../logger';
import { RenovateConfig } from './common';
import { GlobalConfig } from './common';
import { migrateConfig } from './migration';

export function getConfig(env: NodeJS.ProcessEnv): RenovateConfig {
export function getConfig(env: NodeJS.ProcessEnv): GlobalConfig {
let configFile = env.RENOVATE_CONFIG_FILE || 'config';
if (!upath.isAbsolute(configFile)) {
configFile = `${process.cwd()}/${configFile}`;
logger.debug('Checking for config file in ' + configFile);
}
let config: RenovateConfig = {};
let config: GlobalConfig = {};
try {
// eslint-disable-next-line global-require,import/no-dynamic-require
config = require(configFile);
Expand Down
8 changes: 4 additions & 4 deletions lib/config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { get, getLanguageList, getManagerList } from '../manager';
import { readFile } from '../util/fs';
import { ensureTrailingSlash } from '../util/url';
import * as cliParser from './cli';
import { RenovateConfig, RenovateConfigStage } from './common';
import { GlobalConfig, RenovateConfig, RenovateConfigStage } from './common';
import * as defaultsParser from './defaults';
import * as definitions from './definitions';
import * as envParser from './env';
Expand Down Expand Up @@ -44,7 +44,7 @@ export function getManagerConfig(
export async function parseConfigs(
env: NodeJS.ProcessEnv,
argv: string[]
): Promise<RenovateConfig> {
): Promise<GlobalConfig> {
logger.debug('Parsing configs');

// Get configs
Expand Down Expand Up @@ -138,9 +138,9 @@ export async function parseConfigs(
}

export function filterConfig(
inputConfig: RenovateConfig,
inputConfig: GlobalConfig,
targetStage: RenovateConfigStage
): RenovateConfig {
): GlobalConfig {
logger.trace({ config: inputConfig }, `filterConfig('${targetStage}')`);
const outputConfig: RenovateConfig = { ...inputConfig };
const stages = ['global', 'repository', 'package', 'branch', 'pr'];
Expand Down
8 changes: 4 additions & 4 deletions lib/config/presets/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
import { logger } from '../../logger';
import { ExternalHostError } from '../../types/errors/external-host-error';
import { regEx } from '../../util/regex';
import { RenovateConfig } from '../common';
import { GlobalConfig, RenovateConfig } from '../common';
import * as massage from '../massage';
import * as migration from '../migration';
import { mergeChildConfig } from '../utils';
Expand Down Expand Up @@ -185,19 +185,19 @@ export async function getPreset(
}

export async function resolveConfigPresets(
inputConfig: RenovateConfig,
inputConfig: GlobalConfig,
baseConfig?: RenovateConfig,
ignorePresets?: string[],
existingPresets: string[] = []
): Promise<RenovateConfig> {
): Promise<GlobalConfig> {
if (!ignorePresets || ignorePresets.length === 0) {
ignorePresets = inputConfig.ignorePresets || []; // eslint-disable-line
}
logger.trace(
{ config: inputConfig, existingPresets },
'resolveConfigPresets'
);
let config: RenovateConfig = {};
let config: GlobalConfig = {};
// First, merge all the preset configs from left to right
if (inputConfig.extends?.length) {
for (const preset of inputConfig.extends) {
Expand Down
6 changes: 3 additions & 3 deletions lib/util/cache/package/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { RenovateConfig } from '../../../config/common';
import { GlobalConfig } from '../../../config/common';
import * as memCache from '../memory';
import { PackageCache } from './common';
import * as fileCache from './file';
Expand Down Expand Up @@ -35,7 +35,7 @@ export function set(
return cacheProxy.set(namespace, key, value, minutes);
}

export function init(config: RenovateConfig): void {
export function init(config: GlobalConfig): void {
if (config.redisUrl) {
redisCache.init(config.redisUrl);
cacheProxy = {
Expand All @@ -51,7 +51,7 @@ export function init(config: RenovateConfig): void {
}
}

export function cleanup(config: RenovateConfig): void {
export function cleanup(config: GlobalConfig): void {
if (config.redisUrl) {
redisCache.end();
}
Expand Down
6 changes: 3 additions & 3 deletions lib/workers/global/autodiscover.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import is from '@sindresorhus/is';
import minimatch from 'minimatch';
import { RenovateConfig } from '../../config';
import { GlobalConfig } from '../../config';
import { logger } from '../../logger';
import { platform } from '../../platform';

Expand All @@ -10,8 +10,8 @@ function repoName(value: string | { repository: string }): string {
}

export async function autodiscoverRepositories(
config: RenovateConfig
): Promise<RenovateConfig> {
config: GlobalConfig
): Promise<GlobalConfig> {
if (!config.autodiscover) {
if (!config.repositories?.length) {
logger.warn(
Expand Down
3 changes: 2 additions & 1 deletion lib/workers/global/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { ERROR } from 'bunyan';
import fs from 'fs-extra';
import upath from 'upath';
import * as configParser from '../../config';
import { GlobalConfig } from '../../config';
import { setAdminConfig } from '../../config/admin';
import { getAdminOptionNames } from '../../config/definitions';
import { getProblems, logger, setMeta } from '../../logger';
Expand Down Expand Up @@ -46,7 +47,7 @@ function haveReachedLimits(): boolean {
}

export async function start(): Promise<number> {
let config: RenovateConfig;
let config: GlobalConfig;
try {
// read global config from file, env and cli args
config = await getGlobalConfig();
Expand Down

0 comments on commit 3756f2a

Please sign in to comment.