diff --git a/lib/modules/manager/helmv3/extract.spec.ts b/lib/modules/manager/helmv3/extract.spec.ts index cc9d2d2025ad1f82326f492a9488260a976eec25..eb0d0041778c896355b17b739592c33711c4cfdd 100644 --- a/lib/modules/manager/helmv3/extract.spec.ts +++ b/lib/modules/manager/helmv3/extract.spec.ts @@ -1,8 +1,14 @@ -import { fs } from '../../../../test/util'; +import { fs, partial } from '../../../../test/util'; import { DockerDatasource } from '../../datasource/docker'; +import type { ExtractConfig } from '../types'; import { extractPackageFile } from '.'; jest.mock('../../../util/fs'); +const config = partial<ExtractConfig>({ + registryAliases: { + stable: 'https://charts.helm.sh/stable', + }, +}); describe('modules/manager/helmv3/extract', () => { describe('extractPackageFile()', () => { @@ -29,11 +35,7 @@ describe('modules/manager/helmv3/extract', () => { version: 0.8.1 `; const fileName = 'Chart.yaml'; - const result = await extractPackageFile(content, fileName, { - registryAliases: { - stable: 'https://charts.helm.sh/stable', - }, - }); + const result = await extractPackageFile(content, fileName, config); expect(result).not.toBeNull(); expect(result).toMatchSnapshot(); expect(result?.deps.every((dep) => dep.skipReason)).toBe(true); @@ -57,11 +59,7 @@ describe('modules/manager/helmv3/extract', () => { condition: postgresql.enabled `; const fileName = 'Chart.yaml'; - const result = await extractPackageFile(content, fileName, { - registryAliases: { - stable: 'https://charts.helm.sh/stable', - }, - }); + const result = await extractPackageFile(content, fileName, config); expect(result).toMatchSnapshot({ deps: [ { depName: 'redis', currentValue: '0.9.0' }, @@ -90,11 +88,7 @@ describe('modules/manager/helmv3/extract', () => { condition: postgresql.enabled `; const fileName = 'Chart.yaml'; - const result = await extractPackageFile(content, fileName, { - registryAliases: { - stable: 'https://charts.helm.sh/stable', - }, - }); + const result = await extractPackageFile(content, fileName, config); expect(result).toMatchSnapshot({ deps: [ { @@ -145,11 +139,7 @@ describe('modules/manager/helmv3/extract', () => { [ `; const fileName = 'Chart.yaml'; - const result = await extractPackageFile(content, fileName, { - registryAliases: { - stable: 'https://charts.helm.sh/stable', - }, - }); + const result = await extractPackageFile(content, fileName, config); expect(result).toBeNull(); }); @@ -169,11 +159,7 @@ describe('modules/manager/helmv3/extract', () => { repository: file:///some/local/path/ `; const fileName = 'Chart.yaml'; - const result = await extractPackageFile(content, fileName, { - registryAliases: { - stable: 'https://charts.helm.sh/stable', - }, - }); + const result = await extractPackageFile(content, fileName, config); expect(result).toMatchSnapshot({ deps: [ { depName: 'redis' }, @@ -194,11 +180,7 @@ describe('modules/manager/helmv3/extract', () => { hello: world `; const fileName = 'Chart.yaml'; - const result = await extractPackageFile(content, fileName, { - registryAliases: { - stable: 'https://charts.helm.sh/stable', - }, - }); + const result = await extractPackageFile(content, fileName, config); expect(result).toBeNull(); }); @@ -214,11 +196,7 @@ describe('modules/manager/helmv3/extract', () => { dependencies: [] `; const fileName = 'Chart.yaml'; - const result = await extractPackageFile(content, fileName, { - registryAliases: { - stable: 'https://charts.helm.sh/stable', - }, - }); + const result = await extractPackageFile(content, fileName, config); expect(result).toBeNull(); }); @@ -234,22 +212,14 @@ describe('modules/manager/helmv3/extract', () => { [ `; const fileName = 'Chart.yaml'; - const result = await extractPackageFile(content, fileName, { - registryAliases: { - stable: 'https://charts.helm.sh/stable', - }, - }); + const result = await extractPackageFile(content, fileName, config); expect(result).toBeNull(); }); it('returns null if Chart.yaml is empty', async () => { const content = ''; const fileName = 'Chart.yaml'; - const result = await extractPackageFile(content, fileName, { - registryAliases: { - stable: 'https://charts.helm.sh/stable', - }, - }); + const result = await extractPackageFile(content, fileName, config); expect(result).toBeNull(); }); @@ -262,11 +232,7 @@ describe('modules/manager/helmv3/extract', () => { version: 0.1.0 `; const fileName = 'Chart.yaml'; - const result = await extractPackageFile(content, fileName, { - registryAliases: { - stable: 'https://charts.helm.sh/stable', - }, - }); + const result = await extractPackageFile(content, fileName, config); expect(result).toBeNull(); }); @@ -283,11 +249,7 @@ describe('modules/manager/helmv3/extract', () => { alias: "test" `; const fileName = 'Chart.yaml'; - const result = await extractPackageFile(content, fileName, { - registryAliases: { - stable: 'https://charts.helm.sh/stable', - }, - }); + const result = await extractPackageFile(content, fileName, config); expect(result).toBeNull(); }); }); diff --git a/lib/modules/manager/regex/index.ts b/lib/modules/manager/regex/index.ts index 6a316d9b17fb93371972412da280613bf6da1c81..ac4c5323c75b8ab650d082ac94859e8f7c879286 100644 --- a/lib/modules/manager/regex/index.ts +++ b/lib/modules/manager/regex/index.ts @@ -1,36 +1,44 @@ import is from '@sindresorhus/is'; import type { RegexManagerTemplates } from '../../../config/types'; import type { - CustomExtractConfig, + ExtractConfig, PackageDependency, PackageFile, Result, } from '../types'; import { handleAny, handleCombination, handleRecursive } from './strategies'; +import type { RegexManagerConfig } from './types'; import { validMatchFields } from './utils'; export const defaultConfig = { pinDigests: false, }; - export const supportedDatasources = ['*']; export function extractPackageFile( content: string, packageFile: string, - config: CustomExtractConfig + config: ExtractConfig ): Result<PackageFile | null> { let deps: PackageDependency[]; switch (config.matchStringsStrategy) { default: case 'any': - deps = handleAny(content, packageFile, config); + deps = handleAny(content, packageFile, config as RegexManagerConfig); break; case 'combination': - deps = handleCombination(content, packageFile, config); + deps = handleCombination( + content, + packageFile, + config as RegexManagerConfig + ); break; case 'recursive': - deps = handleRecursive(content, packageFile, config); + deps = handleRecursive( + content, + packageFile, + config as RegexManagerConfig + ); break; } diff --git a/lib/modules/manager/regex/strategies.ts b/lib/modules/manager/regex/strategies.ts index 22d06d5415f16bf845049d1543839b3c72b5a434..d64f151c0399d6fa0bb937fa0d09f05eb7fd8241 100644 --- a/lib/modules/manager/regex/strategies.ts +++ b/lib/modules/manager/regex/strategies.ts @@ -1,7 +1,7 @@ import is from '@sindresorhus/is'; import { regEx } from '../../../util/regex'; -import type { CustomExtractConfig, PackageDependency } from '../types'; -import type { RecursionParameter } from './types'; +import type { PackageDependency } from '../types'; +import type { RecursionParameter, RegexManagerConfig } from './types'; import { createDependency, isValidDependency, @@ -13,7 +13,7 @@ import { export function handleAny( content: string, packageFile: string, - config: CustomExtractConfig + config: RegexManagerConfig ): PackageDependency[] { return config.matchStrings .map((matchString) => regEx(matchString, 'g')) @@ -31,7 +31,7 @@ export function handleAny( export function handleCombination( content: string, packageFile: string, - config: CustomExtractConfig + config: RegexManagerConfig ): PackageDependency[] { const matches = config.matchStrings .map((matchString) => regEx(matchString, 'g')) @@ -55,7 +55,7 @@ export function handleCombination( export function handleRecursive( content: string, packageFile: string, - config: CustomExtractConfig + config: RegexManagerConfig ): PackageDependency[] { const regexes = config.matchStrings.map((matchString) => regEx(matchString, 'g') diff --git a/lib/modules/manager/regex/types.ts b/lib/modules/manager/regex/types.ts index f0840a4e8608080f4806ae8e904639a02222b7d5..aaf0f8c4dd6f022f561b6d65c4d097c5a2673bd7 100644 --- a/lib/modules/manager/regex/types.ts +++ b/lib/modules/manager/regex/types.ts @@ -13,3 +13,7 @@ export interface RecursionParameter { index: number; combinedGroups: Record<string, string>; } + +export interface RegexManagerConfig extends CustomExtractConfig { + matchStrings: string[]; +} diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts index 45797482dda734f044f2c79e6d7bc195ab30556b..97db4c823f255555e9e482fc1d480e35503e9418 100644 --- a/lib/modules/manager/types.ts +++ b/lib/modules/manager/types.ts @@ -15,18 +15,16 @@ export interface ManagerData<T> { managerData?: T; } -export interface ExtractConfig { +export interface ExtractConfig extends CustomExtractConfig { registryAliases?: Record<string, string>; npmrc?: string; npmrcMerge?: boolean; skipInstalls?: boolean; } -export interface CustomExtractConfig - extends ExtractConfig, - RegexManagerTemplates { +export interface CustomExtractConfig extends RegexManagerTemplates { autoReplaceStringTemplate?: string; - matchStrings: string[]; + matchStrings?: string[]; matchStringsStrategy?: MatchStringsStrategy; } diff --git a/lib/workers/types.ts b/lib/workers/types.ts index 87f3cc36b9c7c8f8dfeab9b6c866504849bfa02c..32c036afeff4633a7b879d20b315e64df49c9118 100644 --- a/lib/workers/types.ts +++ b/lib/workers/types.ts @@ -10,7 +10,6 @@ import type { import type { Release } from '../modules/datasource/types'; import type { ArtifactError, - CustomExtractConfig, ExtractConfig, LookupUpdate, PackageDependency, @@ -129,9 +128,7 @@ export interface BranchConfig isConflicted?: boolean; } -export interface WorkerExtractConfig - extends ExtractConfig, - Partial<CustomExtractConfig> { +export interface WorkerExtractConfig extends ExtractConfig { manager: string; fileList: string[]; fileMatch?: string[];