diff --git a/docs/usage/self-hosted-configuration.md b/docs/usage/self-hosted-configuration.md index a1a844a1331800d4564c9aff0c6ac0b723ee0069..8d5e276092b6bb36d82d9c5b96c7bab9353b1242 100644 --- a/docs/usage/self-hosted-configuration.md +++ b/docs/usage/self-hosted-configuration.md @@ -103,6 +103,8 @@ RENOVATE_AUTODISCOVER_FILTER="/myapp/(readme\.md|src/.*)/" } ``` +The search for repositories is case-insensitive. + **Regex**: All text inside the start and end `/` will be treated as a regular expression. diff --git a/lib/modules/platform/bitbucket-server/index.spec.ts b/lib/modules/platform/bitbucket-server/index.spec.ts index d2a55ed50b19e64e979dc8b93b035cca67dc667d..f2b5f4357a2b8dbddf19ddd91f691ddd58434bd0 100644 --- a/lib/modules/platform/bitbucket-server/index.spec.ts +++ b/lib/modules/platform/bitbucket-server/index.spec.ts @@ -266,7 +266,7 @@ describe('modules/platform/bitbucket-server/index', () => { values: [repoMock(url, 'SOME', 'repo')], start: 0, }); - expect(await bitbucket.getRepos()).toEqual(['some/repo']); + expect(await bitbucket.getRepos()).toEqual(['SOME/repo']); }); }); diff --git a/lib/modules/platform/bitbucket-server/index.ts b/lib/modules/platform/bitbucket-server/index.ts index ba34de140709c1c9dbd56c131d425176f9d049f2..ce8300338835a6981e6ad511e78ba0d996762660 100644 --- a/lib/modules/platform/bitbucket-server/index.ts +++ b/lib/modules/platform/bitbucket-server/index.ts @@ -110,7 +110,7 @@ export async function getRepos(): Promise<string[]> { ); const result = repos.map( (r: { project: { key: string }; slug: string }) => - `${r.project.key.toLowerCase()}/${r.slug}` + `${r.project.key}/${r.slug}` ); logger.debug({ result }, 'result of getRepos()'); return result; diff --git a/lib/workers/global/autodiscover.spec.ts b/lib/workers/global/autodiscover.spec.ts index ae75305ad695a9a814a380b02e5dfb5671a1e32f..6566d0ac9958f8c49922d10d209493c70dd612cf 100644 --- a/lib/workers/global/autodiscover.spec.ts +++ b/lib/workers/global/autodiscover.spec.ts @@ -164,4 +164,18 @@ describe('workers/global/autodiscover', () => { const res = await autodiscoverRepositories(config); expect(res.repositories).toEqual(expectedRepositories); }); + + it('filters autodiscovered github repos case-insensitive', async () => { + config.autodiscover = true; + config.autodiscoverFilter = ['project/re*']; + config.platform = 'github'; + hostRules.find = jest.fn(() => ({ + token: 'abc', + })); + ghApi.getRepos = jest.fn(() => + Promise.resolve(['project/repo', 'PROJECT/repo2']) + ); + const res = await autodiscoverRepositories(config); + expect(res.repositories).toEqual(['project/repo', 'PROJECT/repo2']); + }); }); diff --git a/lib/workers/global/autodiscover.ts b/lib/workers/global/autodiscover.ts index 2ea7d7953ccdf5ddf107445c127aef84ad593e5b..ed6e92dc817e29d572ed504cca4c12ec604492ca 100644 --- a/lib/workers/global/autodiscover.ts +++ b/lib/workers/global/autodiscover.ts @@ -105,7 +105,7 @@ export function applyFilters(repos: string[], filters: string[]): string[] { } res = repos.filter(autodiscoveryPred); } else { - res = repos.filter(minimatch.filter(filter)); + res = repos.filter(minimatch.filter(filter, { nocase: true })); } for (const repository of res) { matched.add(repository);