@backstage/integration
Version:
Helpers for managing integrations towards external systems
29 lines (26 loc) • 1.09 kB
JavaScript
import { SingleInstanceGitlabCredentialsProvider } from './SingleInstanceGitlabCredentialsProvider.esm.js';
class DefaultGitlabCredentialsProvider {
constructor(providers) {
this.providers = providers;
}
static fromIntegrations(integrations) {
const credentialsProviders = /* @__PURE__ */ new Map();
integrations.gitlab.list().forEach((integration) => {
const credentialsProvider = 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);
}
}
export { DefaultGitlabCredentialsProvider };
//# sourceMappingURL=DefaultGitlabCredentialsProvider.esm.js.map