diff --git a/src/cli/index.ts b/src/cli/index.ts index e319f75..a60b024 100644 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -106,7 +106,14 @@ async function main() { console.info( `[INFO] Downloading repository: ${repository.model.source.repositoryName} from branch ${repository.model.source.branch} and commit ${repository.model.source.commit}...` ); - await (repository.source as GitHubDownload).download(inq.token); + const cliDownload = new GitHubDownload({ + repoId: repository.repoId, + organization: ghURL.owner, + repoName: ghURL.name, + commit: branch?.commit || "HEAD", + getToken: () => inq.token, + }); + await cliDownload.download(inq.token); const outputFileName = join(inq.output, generateRandomFileName(8) + ".zip"); console.info("[INFO] Anonymizing repository and creation zip file..."); await writeFile(outputFileName, await repository.zip()); diff --git a/src/core/Repository.ts b/src/core/Repository.ts index 3576d73..a1d1199 100644 --- a/src/core/Repository.ts +++ b/src/core/Repository.ts @@ -4,7 +4,6 @@ import { Readable } from "stream"; import * as sha1 from "crypto-js/sha1"; import User from "./User"; import GitHubStream from "./source/GitHubStream"; -import GitHubDownload from "./source/GitHubDownload"; import Zip from "./source/Zip"; import { anonymizePath } from "./anonymize-utils"; import UserModel from "./model/users/users.model"; @@ -21,7 +20,6 @@ import { GitHubRepository, } from "./source/GitHubRepository"; import { getToken } from "./GitHubUtils"; -import { FILE_TYPE } from "./storage/Storage"; import config from "../config"; import FileModel from "./model/files/files.model"; import { IFile } from "./model/files/files.types"; @@ -83,31 +81,16 @@ export default class Repository { const ghRepo = new GitHubRepository({ name: this.model.source.repositoryName, }); - switch (this.model.source.type) { - case "GitHubDownload": - return new GitHubDownload({ - repoId: this.repoId, - commit: this.model.source.commit || "HEAD", - organization: ghRepo.owner, - repoName: ghRepo.repo, - getToken: () => this.getToken(), - }); - case "GitHubStream": - return new GitHubStream({ - repoId: this.repoId, - commit: this.model.source.commit || "HEAD", - organization: ghRepo.owner, - repoName: ghRepo.repo, - getToken: () => this.getToken(), - }); - case "Zip": - return new Zip(this.model.source, this.repoId); - default: - throw new AnonymousError("unsupported_source", { - object: this, - httpStatus: 400, - }); + if (this.model.source.type === "Zip") { + return new Zip(this.model.source, this.repoId); } + return new GitHubStream({ + repoId: this.repoId, + commit: this.model.source.commit || "HEAD", + organization: ghRepo.owner, + repoName: ghRepo.repo, + getToken: () => this.getToken(), + }); } /** @@ -264,11 +247,7 @@ export default class Repository { async isReady() { if (this.status !== RepositoryStatus.READY) return false; - if ( - (this.source.type == "GitHubDownload" && - (await storage.exists(this.repoId)) == FILE_TYPE.NOT_FOUND) || - !(await FileModel.exists({ repoId: this.repoId }).exec()) - ) { + if (!(await FileModel.exists({ repoId: this.repoId }).exec())) { this.model.status = RepositoryStatus.PREPARING; await this.updateIfNeeded({ force: true }); return false; diff --git a/src/server/routes/repository-private.ts b/src/server/routes/repository-private.ts index 6099289..068d8e7 100644 --- a/src/server/routes/repository-private.ts +++ b/src/server/routes/repository-private.ts @@ -329,15 +329,7 @@ function updateRepoModel( // eslint-disable-next-line @typescript-eslint/no-explicit-any repoUpdate: any ) { - if (repoUpdate.source.type) { - model.source.type = repoUpdate.source.type; - if ( - model.source.type != "GitHubStream" && - model.source.type != "GitHubDownload" - ) { - model.source.type = "GitHubStream"; - } - } + model.source.type = "GitHubStream"; model.source.commit = repoUpdate.source.commit; model.source.branch = repoUpdate.source.branch; model.options = {