@backstage/integration
Version:
Helpers for managing integrations towards external systems
57 lines (54 loc) • 1.8 kB
JavaScript
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