From 9d3d7a92acfde05a780b3eaaeed7d3ff015416fb Mon Sep 17 00:00:00 2001 From: Johannes Feichtner <343448+Churro@users.noreply.github.com> Date: Sun, 9 Jul 2023 07:44:37 +0200 Subject: [PATCH] fix(platform/bitbucket-server): do not force lowercase project keys in autodiscover mode (#23261) Co-authored-by: Rhys Arkins --- docs/usage/self-hosted-configuration.md | 2 ++ .../platform/bitbucket-server/index.spec.ts | 2 +- lib/modules/platform/bitbucket-server/index.ts | 2 +- lib/workers/global/autodiscover.spec.ts | 14 ++++++++++++++ lib/workers/global/autodiscover.ts | 2 +- 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/docs/usage/self-hosted-configuration.md b/docs/usage/self-hosted-configuration.md index a1a844a1331800..8d5e276092b6bb 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 d2a55ed50b19e6..f2b5f4357a2b8d 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 ba34de140709c1..ce8300338835a6 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 { ); 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 ae75305ad695a9..6566d0ac9958f8 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 2ea7d7953ccdf5..ed6e92dc817e29 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);