UNPKG

@veecode-platform/safira-cli

Version:

Generate a microservice project from your spec.

77 lines (76 loc) 3.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GitUtils = void 0; const tslib_1 = require("tslib"); const color_1 = tslib_1.__importDefault(require("@oclif/color")); const set_1 = tslib_1.__importDefault(require("../commands/bitbucket/credential/set")); const set_2 = tslib_1.__importDefault(require("../commands/github/credential/set")); const set_3 = tslib_1.__importDefault(require("../commands/gitlab/credential/set")); const git_commands_1 = require("./git-commands"); const git_providers_1 = require("./git-providers"); class GitUtils { static parseToGitUrl(url) { url = url.trim(); if (url.startsWith("git@") && url.endsWith(".git")) { const splitPath = url.replace("git@", "").split(":"); return `https://${splitPath[0]}/${splitPath[1]}`; } return url; } static async getRepositoryData(urlParam) { if (!urlParam) urlParam = await git_commands_1.GitCommand.instance.getRemoteOriginUrl(); const gitUrl = this.parseToGitUrl(urlParam); const url = new URL(gitUrl); const host = url.host; const path = url.pathname.replace(/^\//, ""); const pathSplit = path.split("/"); const repoName = pathSplit[pathSplit.length - 1].replace(".git", ""); const owner = pathSplit[pathSplit.length - 2]; const provider = git_providers_1.GitProviderEnum[host.replace(/\.[.a-z]+\/?.*/, "")]; return { provider: provider, host: host, owner: owner, name: repoName, }; } static generateRepoUrl(projectName, provider) { projectName = projectName.trim(); switch (provider) { case git_providers_1.GitProviderEnum.bitbucket: return `https://bitbucket.org/${projectName}.git`; case git_providers_1.GitProviderEnum.github: return `https://github.com/${projectName}.git`; case git_providers_1.GitProviderEnum.gitlab: return `https://gitlab.com/${projectName}.git`; default: throw new Error("Repository not found, please enter a valid repository"); } } static validatePath(path) { path = path.includes(" ") ? path.replace(/ /g, "") : path; if (path.startsWith("/")) return `.${path}`; if (!path.startsWith("./")) return `./${path}`; return path; } static async askByGitCredentials(provider) { console.log(color_1.default.bold(color_1.default.yellowBright(`You need to configure your credentials for ${provider}`))); switch (provider) { case git_providers_1.GitProviderEnum.bitbucket: await set_1.default.run([]); break; case git_providers_1.GitProviderEnum.github: await set_2.default.run([]); break; case git_providers_1.GitProviderEnum.gitlab: await set_3.default.run([]); break; default: throw new Error("Git Provider not implemented"); } } } exports.GitUtils = GitUtils;