UNPKG

@backstage/integration

Version:

Helpers for managing integrations towards external systems

55 lines (49 loc) 1.58 kB
'use strict'; var parseGitUrl = require('git-url-parse'); var helpers = require('../helpers.cjs.js'); var config = require('./config.cjs.js'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var parseGitUrl__default = /*#__PURE__*/_interopDefaultCompat(parseGitUrl); class BitbucketCloudIntegration { constructor(integrationConfig) { this.integrationConfig = integrationConfig; } static factory = ({ config: config$1 }) => { const configs = config.readBitbucketCloudIntegrationConfigs( config$1.getOptionalConfigArray("integrations.bitbucketCloud") ?? [] ); return helpers.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 = helpers.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__default.default(url); const editUrl = new URL(url); editUrl.searchParams.set("mode", "edit"); editUrl.searchParams.set("at", urlData.ref); return editUrl.toString(); } } exports.BitbucketCloudIntegration = BitbucketCloudIntegration; //# sourceMappingURL=BitbucketCloudIntegration.cjs.js.map