UNPKG

@backstage/integration

Version:

Helpers for managing integrations towards external systems

49 lines (46 loc) 1.36 kB
import parseGitUrl from 'git-url-parse'; import { basicIntegrations, defaultScmResolveUrl } from '../helpers.esm.js'; import { readBitbucketCloudIntegrationConfigs } from './config.esm.js'; class BitbucketCloudIntegration { constructor(integrationConfig) { this.integrationConfig = integrationConfig; } static factory = ({ config }) => { const configs = readBitbucketCloudIntegrationConfigs( config.getOptionalConfigArray("integrations.bitbucketCloud") ?? [] ); return basicIntegrations( configs.map((c) => new BitbucketCloudIntegration(c)), (i) => i.config.host ); }; get type() { return "bitbucketCloud"; } 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 = `lines-${options.lineNumber}`; return url.toString(); } return resolved; } resolveEditUrl(url) { const urlData = parseGitUrl(url); const editUrl = new URL(url); editUrl.searchParams.set("mode", "edit"); editUrl.searchParams.set("at", urlData.ref); return editUrl.toString(); } } export { BitbucketCloudIntegration }; //# sourceMappingURL=BitbucketCloudIntegration.esm.js.map