@backstage/integration
Version:
Helpers for managing integrations towards external systems
39 lines (36 loc) • 1.05 kB
JavaScript
import { basicIntegrations, defaultScmResolveUrl } from '../helpers.esm.js';
import { readGitLabIntegrationConfigs } from './config.esm.js';
class GitLabIntegration {
constructor(integrationConfig) {
this.integrationConfig = integrationConfig;
}
static factory = ({ config }) => {
const configs = readGitLabIntegrationConfigs(
config.getOptionalConfigArray("integrations.gitlab") ?? []
);
return 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 defaultScmResolveUrl(options);
}
resolveEditUrl(url) {
return replaceGitLabUrlType(url, "edit");
}
}
function replaceGitLabUrlType(url, type) {
return url.replace(/\/\-\/(blob|tree|edit)\//, `/-/${type}/`);
}
export { GitLabIntegration, replaceGitLabUrlType };
//# sourceMappingURL=GitLabIntegration.esm.js.map