@backstage/integration
Version:
Helpers for managing integrations towards external systems
47 lines (44 loc) • 1.23 kB
JavaScript
import { basicIntegrations, defaultScmResolveUrl } from '../helpers.esm.js';
import { readBitbucketServerIntegrationConfigs } from './config.esm.js';
class BitbucketServerIntegration {
constructor(integrationConfig) {
this.integrationConfig = integrationConfig;
}
static factory = ({
config
}) => {
const configs = readBitbucketServerIntegrationConfigs(
config.getOptionalConfigArray("integrations.bitbucketServer") ?? []
);
return basicIntegrations(
configs.map((c) => new BitbucketServerIntegration(c)),
(i) => i.config.host
);
};
get type() {
return "bitbucketServer";
}
get title() {
return this.integrationConfig.host;
}
get config() {
return this.integrationConfig;
}
resolveUrl(options) {
const resolved = defaultScmResolveUrl(options);
if (options.lineNumber) {
const url = new URL(resolved);
url.hash = options.lineNumber.toString();
return url.toString();
}
return resolved;
}
resolveEditUrl(url) {
if (url.includes("?")) {
return url.substring(0, url.indexOf("?"));
}
return url;
}
}
export { BitbucketServerIntegration };
//# sourceMappingURL=BitbucketServerIntegration.esm.js.map