Add warn log if config key branch is used

Signed-off-by: Andreas Berger <andreas@berger-ecommerce.com>
This commit is contained in:
Andreas Berger
2023-02-23 12:12:53 +01:00
parent af1095f1e1
commit b2fce0b01e
4 changed files with 45 additions and 14 deletions
@@ -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[] = [];
@@ -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[] = [];
@@ -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('');
});
@@ -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;