-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
config.ts
69 lines (61 loc) · 2.08 KB
/
config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import { getPreset } from '../../../../config/presets/local';
import { PRESET_DEP_NOT_FOUND } from '../../../../config/presets/util';
import type { RenovateConfig } from '../../../../config/types';
import { logger } from '../../../../logger';
import { clone } from '../../../../util/clone';
export async function getOnboardingConfig(
config: RenovateConfig
): Promise<string> {
let onboardingConfig = clone(config.onboardingConfig);
let orgPreset: string;
logger.debug(
'Checking if this org/owner has a default Renovate preset which can be used.'
);
const orgName = config.repository.split('/')[0];
// Check for org/renovate-config
try {
const packageName = `${orgName}/renovate-config`;
await getPreset({ packageName, baseConfig: config });
orgPreset = `local>${packageName}`;
} catch (err) {
if (
err.message !== PRESET_DEP_NOT_FOUND &&
!err.message.startsWith('Unsupported platform')
) {
logger.warn({ err }, 'Unknown error fetching default owner preset');
}
}
if (!orgPreset) {
// Check for org/.{{platform}}
try {
const packageName = `${orgName}/.${config.platform}`;
const presetName = 'renovate-config';
await getPreset({
packageName,
presetName,
baseConfig: config,
});
orgPreset = `local>${packageName}:${presetName}`;
} catch (err) {
if (
err.message !== PRESET_DEP_NOT_FOUND &&
!err.message.startsWith('Unsupported platform')
) {
logger.warn({ err }, 'Unknown error fetching default owner preset');
}
}
}
if (orgPreset) {
onboardingConfig = {
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
extends: [orgPreset],
};
} else {
// Organization preset did not exist
logger.debug(
'No default org/owner preset found, so the default onboarding config will be used instead. Note: do not be concerned with any 404 messages that preceded this.'
);
}
logger.debug({ config: onboardingConfig }, 'onboarding config');
return JSON.stringify(onboardingConfig, null, 2) + '\n';
}