@backstage/integration
Version:
Helpers for managing integrations towards external systems
42 lines (38 loc) • 1.09 kB
JavaScript
;
var helpers = require('../helpers.cjs.js');
var config = require('./config.cjs.js');
class GitLabIntegration {
constructor(integrationConfig) {
this.integrationConfig = integrationConfig;
}
static factory = ({ config: config$1 }) => {
const configs = config.readGitLabIntegrationConfigs(
config$1.getOptionalConfigArray("integrations.gitlab") ?? []
);
return helpers.basicIntegrations(
configs.map((c) => new GitLabIntegration(c)),
(i) => i.config.host
);
};
get type() {
return "gitlab";
}
get title() {
return this.integrationConfig.host;
}
get config() {
return this.integrationConfig;
}
resolveUrl(options) {
return helpers.defaultScmResolveUrl(options);
}
resolveEditUrl(url) {
return replaceGitLabUrlType(url, "edit");
}
}
function replaceGitLabUrlType(url, type) {
return url.replace(/\/\-\/(blob|tree|edit)\//, `/-/${type}/`);
}
exports.GitLabIntegration = GitLabIntegration;
exports.replaceGitLabUrlType = replaceGitLabUrlType;
//# sourceMappingURL=GitLabIntegration.cjs.js.map