From b2fce0b01e1a5adfe00aa0b9cfaa803f963e35c7 Mon Sep 17 00:00:00 2001 From: Andreas Berger Date: Thu, 23 Feb 2023 12:12:53 +0100 Subject: [PATCH] Add warn log if config key `branch` is used Signed-off-by: Andreas Berger --- .../GitlabDiscoveryEntityProvider.ts | 5 ++- .../GitlabOrgDiscoveryEntityProvider.ts | 5 ++- .../src/providers/config.test.ts | 15 ++++---- .../src/providers/config.ts | 34 +++++++++++++++---- 4 files changed, 45 insertions(+), 14 deletions(-) diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts index 1eafe2f637..f0d88c34f5 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts @@ -61,7 +61,10 @@ export class GitlabDiscoveryEntityProvider implements EntityProvider { throw new Error('Either schedule or scheduler must be provided.'); } - const providerConfigs = readGitlabConfigs(config); + const providerConfigs = readGitlabConfigs( + config, + options.logger.child({ target: 'GitlabDiscoveryEntityProvider' }), + ); const integrations = ScmIntegrations.fromConfig(config).gitlab; const providers: GitlabDiscoveryEntityProvider[] = []; diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts index f90a61f9e9..ad9d9dae79 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts @@ -72,7 +72,10 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider { throw new Error('Either schedule or scheduler must be provided.'); } - const providerConfigs = readGitlabConfigs(config); + const providerConfigs = readGitlabConfigs( + config, + options.logger.child({ target: 'GitlabOrgDiscoveryEntityProvider' }), + ); const integrations = ScmIntegrations.fromConfig(config).gitlab; const providers: GitlabOrgDiscoveryEntityProvider[] = []; diff --git a/plugins/catalog-backend-module-gitlab/src/providers/config.test.ts b/plugins/catalog-backend-module-gitlab/src/providers/config.test.ts index a7ab354354..c9b35e78c2 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/config.test.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/config.test.ts @@ -17,6 +17,9 @@ import { ConfigReader } from '@backstage/config'; import { Duration } from 'luxon'; import { readGitlabConfigs } from './config'; +import { getVoidLogger } from '@backstage/backend-common'; + +const logger = getVoidLogger(); describe('config', () => { it('empty gitlab config', () => { @@ -26,7 +29,7 @@ describe('config', () => { }, }); - const result = readGitlabConfigs(config); + const result = readGitlabConfigs(config, logger); expect(result).toHaveLength(0); }); @@ -44,7 +47,7 @@ describe('config', () => { }, }); - const result = readGitlabConfigs(config); + const result = readGitlabConfigs(config, logger); expect(result).toHaveLength(1); result.forEach(r => expect(r).toStrictEqual({ @@ -78,7 +81,7 @@ describe('config', () => { }, }); - const result = readGitlabConfigs(config); + const result = readGitlabConfigs(config, logger); expect(result).toHaveLength(1); result.forEach(r => expect(r).toStrictEqual({ @@ -116,7 +119,7 @@ describe('config', () => { }, }); - const result = readGitlabConfigs(config); + const result = readGitlabConfigs(config, logger); expect(result).toHaveLength(1); result.forEach(r => expect(r).toStrictEqual({ @@ -155,7 +158,7 @@ describe('config', () => { }, }); - expect(() => readGitlabConfigs(config)).toThrow( + expect(() => readGitlabConfigs(config, logger)).toThrow( "Missing required config value at 'catalog.providers.gitlab.test.host'", ); }); @@ -174,7 +177,7 @@ describe('config', () => { }, }); - const result = readGitlabConfigs(config); + const result = readGitlabConfigs(config, logger); expect(result).toHaveLength(1); expect(result[0].group).toEqual(''); }); diff --git a/plugins/catalog-backend-module-gitlab/src/providers/config.ts b/plugins/catalog-backend-module-gitlab/src/providers/config.ts index e64ff14cdd..e5cf5a6298 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/config.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/config.ts @@ -17,6 +17,7 @@ import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks'; import { Config } from '@backstage/config'; import { GitlabProviderConfig } from '../lib'; +import { Logger } from 'winston'; /** * Extracts the gitlab config from a config object @@ -25,14 +26,25 @@ import { GitlabProviderConfig } from '../lib'; * * @param id - The provider key * @param config - The config object to extract from + * @param logger - The logger */ -function readGitlabConfig(id: string, config: Config): GitlabProviderConfig { +function readGitlabConfig( + id: string, + config: Config, + logger: Logger, +): GitlabProviderConfig { const group = config.getOptionalString('group') ?? ''; const host = config.getString('host'); + const branch = config.getOptionalString('branch'); + + if (branch) { + logger.warn( + 'The configuration key `branch` has been deprecated in favor of the configuration key `fallbackBranch`.', + ); + } + const fallbackBranch = - config.getOptionalString('fallbackBranch') ?? - config.getOptionalString('branch') ?? - 'master'; + config.getOptionalString('fallbackBranch') ?? branch ?? 'master'; const catalogFile = config.getOptionalString('entityFilename') ?? 'catalog-info.yaml'; const projectPattern = new RegExp( @@ -70,8 +82,12 @@ function readGitlabConfig(id: string, config: Config): GitlabProviderConfig { * @public * * @param config - The config object to extract from + * @param logger - The logger */ -export function readGitlabConfigs(config: Config): GitlabProviderConfig[] { +export function readGitlabConfigs( + config: Config, + logger: Logger, +): GitlabProviderConfig[] { const configs: GitlabProviderConfig[] = []; const providerConfigs = config.getOptionalConfig('catalog.providers.gitlab'); @@ -81,7 +97,13 @@ export function readGitlabConfigs(config: Config): GitlabProviderConfig[] { } for (const id of providerConfigs.keys()) { - configs.push(readGitlabConfig(id, providerConfigs.getConfig(id))); + configs.push( + readGitlabConfig( + id, + providerConfigs.getConfig(id), + logger.child({ target: id }), + ), + ); } return configs;