diff --git a/lib/config/presets/index.spec.ts b/lib/config/presets/index.spec.ts index fa6e3f42dbb0ca00c5d9f4227d3285a3e2f8e20a..e560f956d57ad34006f648b0200e7cac0ecbc9cf 100644 --- a/lib/config/presets/index.spec.ts +++ b/lib/config/presets/index.spec.ts @@ -446,6 +446,17 @@ describe('config/presets/index', () => { presetSource: 'local', }); }); + it('parses local with spaces and subdirectory', () => { + expect( + presets.parsePreset('local>A2B CD/A2B_Renovate//some-dir/some-file') + ).toEqual({ + repo: 'A2B CD/A2B_Renovate', + params: undefined, + presetName: 'some-file', + presetPath: 'some-dir', + presetSource: 'local', + }); + }); it('parses local with sub preset and tag', () => { expect( presets.parsePreset( diff --git a/lib/config/presets/index.ts b/lib/config/presets/index.ts index f926a19957ce9b20283a325e8d9d0d8dff42a261..04d1b0e84569c0b74d6d1c5762a249227bbed69f 100644 --- a/lib/config/presets/index.ts +++ b/lib/config/presets/index.ts @@ -38,7 +38,7 @@ const presetSources: Record<string, PresetApi> = { }; const nonScopedPresetWithSubdirRegex = regEx( - /^(?<repo>~?[\w\-./]+?)\/\/(?:(?<presetPath>[\w\-./]+)\/)?(?<presetName>[\w\-.]+)(?:#(?<tag>[\w\-./]+?))?$/ + /^(?<repo>~?[\w\-. /]+?)\/\/(?:(?<presetPath>[\w\-./]+)\/)?(?<presetName>[\w\-.]+)(?:#(?<tag>[\w\-./]+?))?$/ ); const gitPresetRegex = regEx( /^(?<repo>~?[\w\-. /]+)(?::(?<presetName>[\w\-.+/]+))?(?:#(?<tag>[\w\-./]+?))?$/