UNPKG

snapcube

Version:

📦 Snapshot, backup, and restore any project — binary-safe, fast, and simple CLI.

42 lines • 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getGitlabFiles = void 0; const rest_1 = require("@gitbeaker/rest"); const isBinaryFile_1 = require("../utils/isBinaryFile"); const path_1 = require("path"); const getGitlabFiles = async (repository, branch, options) => { const api = new rest_1.Gitlab({ host: "https://gitlab.com", token: options?.token }); const files = []; const tree = await api.Repositories.allRepositoryTrees(repository, { recursive: true, ref: branch, }); const gitlabFiles = tree.filter((file) => file.type === "blob"); for (const file of gitlabFiles) { if (options?.structureOnly) files.push(file.path); else { const isBinary = (0, isBinaryFile_1.isBinaryFile)(file.name); let content = null; if (!(options?.ignoreAll || (options?.ignoreBinaries && isBinary))) { const schema = await api.RepositoryFiles.show(repository, file.path, branch); content = isBinary ? schema.content : Buffer.from(schema.content, "base64").toString("utf-8"); } const filePath = (0, path_1.dirname)(file.path); files.push({ fileName: file.name, filePath: `${repository.split("/")[1]}${filePath === "." ? "" : `/${filePath}`}`, content: file.type === "blob" ? content : Buffer.from(content, "base64").toString("utf-8"), isBinary, encoding: isBinary ? "base64" : "utf-8", }); } } return files; }; exports.getGitlabFiles = getGitlabFiles; //# sourceMappingURL=getGitlabFiles.js.map