@codefresh-io/cf-git-providers
Version:
An NPM module/CLI for interacting with various git providers
53 lines • 2.4 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getProviderByContext = void 0;
const lodash_1 = require("lodash");
// Providers
const github_1 = __importDefault(require("./providers/github"));
const gitlab_1 = __importDefault(require("./providers/gitlab"));
const bitbucket_1 = __importDefault(require("./providers/bitbucket"));
const bitbucket_server_1 = __importDefault(require("./providers/bitbucket-server"));
const gerrit_1 = __importDefault(require("./providers/gerrit"));
// eslint-disable-next-line @typescript-eslint/no-var-requires
const CFError = require('cf-errors');
const providers = {
'github': github_1.default,
'gitlab': gitlab_1.default,
'bitbucket': bitbucket_1.default,
'bitbucket-server': bitbucket_server_1.default,
'gerrit': gerrit_1.default
};
const _getProviderModule = (providerName) => {
const providerModule = providers[providerName];
if (!providerModule) {
throw new CFError(`Provider module cannot be found: ${providerName}`);
}
return providerModule;
};
function getProviderByContext(gitContext, opt) {
const providerName = gitContext.spec.type.replace('git.', '');
const providerOptions = (0, lodash_1.get)(gitContext, 'spec.data.auth', {});
(0, lodash_1.assign)(providerOptions, opt); // add additional options
const ProviderClass = _getProviderModule(providerName);
return new ProviderClass(providerOptions);
}
exports.getProviderByContext = getProviderByContext;
__exportStar(require("./providers/types"), exports);
//# sourceMappingURL=index.js.map