UNPKG

@backstage/integration

Version:

Helpers for managing integrations towards external systems

57 lines (54 loc) 1.8 kB
import { trimEnd } from 'lodash'; import { isValidHost, isValidUrl } from '../helpers.esm.js'; function readGerritIntegrationConfig(config) { const host = config.getString("host"); let baseUrl = config.getOptionalString("baseUrl"); let cloneUrl = config.getOptionalString("cloneUrl"); const disableEditUrl = config.getOptionalBoolean("disableEditUrl"); let gitilesBaseUrl = config.getString("gitilesBaseUrl"); const username = config.getOptionalString("username"); const password = config.getOptionalString("password")?.trim(); if (!isValidHost(host)) { throw new Error( `Invalid Gerrit integration config, '${host}' is not a valid host` ); } else if (baseUrl && !isValidUrl(baseUrl)) { throw new Error( `Invalid Gerrit integration config, '${baseUrl}' is not a valid baseUrl` ); } else if (cloneUrl && !isValidUrl(cloneUrl)) { throw new Error( `Invalid Gerrit integration config, '${cloneUrl}' is not a valid cloneUrl` ); } else if (!isValidUrl(gitilesBaseUrl)) { throw new Error( `Invalid Gerrit integration config, '${gitilesBaseUrl}' is not a valid gitilesBaseUrl` ); } if (baseUrl) { baseUrl = trimEnd(baseUrl, "/"); } else { baseUrl = `https://${host}`; } if (cloneUrl) { cloneUrl = trimEnd(cloneUrl, "/"); } else { cloneUrl = baseUrl; } gitilesBaseUrl = trimEnd(gitilesBaseUrl, "/"); return { host, baseUrl, cloneUrl, disableEditUrl, gitilesBaseUrl, username, password, commitSigningKey: config.getOptionalString("commitSigningKey") }; } function readGerritIntegrationConfigs(configs) { return configs.map(readGerritIntegrationConfig); } export { readGerritIntegrationConfig, readGerritIntegrationConfigs }; //# sourceMappingURL=config.esm.js.map