@backstage/integration
Version:
Helpers for managing integrations towards external systems
31 lines (27 loc) • 1.18 kB
JavaScript
;
var SingleInstanceGitlabCredentialsProvider = require('./SingleInstanceGitlabCredentialsProvider.cjs.js');
class DefaultGitlabCredentialsProvider {
constructor(providers) {
this.providers = providers;
}
static fromIntegrations(integrations) {
const credentialsProviders = /* @__PURE__ */ new Map();
integrations.gitlab.list().forEach((integration) => {
const credentialsProvider = SingleInstanceGitlabCredentialsProvider.SingleInstanceGitlabCredentialsProvider.create(integration.config);
credentialsProviders.set(integration.config.host, credentialsProvider);
});
return new DefaultGitlabCredentialsProvider(credentialsProviders);
}
async getCredentials(opts) {
const parsed = new URL(opts.url);
const provider = this.providers.get(parsed.host);
if (!provider) {
throw new Error(
`There is no GitLab integration that matches ${opts.url}. Please add a configuration for an integration.`
);
}
return provider.getCredentials(opts);
}
}
exports.DefaultGitlabCredentialsProvider = DefaultGitlabCredentialsProvider;
//# sourceMappingURL=DefaultGitlabCredentialsProvider.cjs.js.map