diff --git a/src/Repository.ts b/src/Repository.ts index 7efc953..34628a4 100644 --- a/src/Repository.ts +++ b/src/Repository.ts @@ -102,7 +102,7 @@ export default class Repository { } if ( this._model.originalFiles && - this._model.size.file !== 0 && + Object.getOwnPropertyNames(this._model.originalFiles).length !== 0 && !opt.force ) { return this._model.originalFiles; @@ -110,7 +110,9 @@ export default class Repository { const files = await this.source.getFiles(); this._model.originalFiles = files; this._model.size = { storage: 0, file: 0 }; + console.log("Size", this._model.originalFiles); await this.computeSize(); + console.log("Size", this._model); return files; } @@ -305,7 +307,7 @@ export default class Repository { */ file: number; }> { - if (this.status != "ready") return { storage: 0, file: 0 }; + if (this.status !== RepositoryStatus.READY) return { storage: 0, file: 0 }; if (this._model.size.file) return this._model.size; function recursiveCount(files: Tree): { storage: number; file: number } { const out = { storage: 0, file: 0 }; diff --git a/src/routes/repository-private.ts b/src/routes/repository-private.ts index e26cfd5..06ee166 100644 --- a/src/routes/repository-private.ts +++ b/src/routes/repository-private.ts @@ -32,9 +32,10 @@ async function getTokenForAdmin(user: User, req: express.Request) { }, { "source.accessToken": 1, + owner: 1, } ).exec(); - if (existingRepo) { + if (existingRepo && existingRepo.owner != user.id) { return existingRepo.source.accessToken; } } catch (error) { diff --git a/src/source/GitHubRepository.ts b/src/source/GitHubRepository.ts index 5f091fb..2d6b5e6 100644 --- a/src/source/GitHubRepository.ts +++ b/src/source/GitHubRepository.ts @@ -1,14 +1,14 @@ import { Branch } from "../types"; import * as gh from "parse-github-url"; import { IRepositoryDocument } from "../database/repositories/repositories.types"; -import { Octokit } from "@octokit/rest"; +import { Octokit, RestEndpointMethodTypes } from "@octokit/rest"; import RepositoryModel from "../database/repositories/repositories.model"; import AnonymousError from "../AnonymousError"; export class GitHubRepository { - private _data: Partial< - { [P in keyof IRepositoryDocument]: IRepositoryDocument[P] } - >; + private _data: Partial<{ + [P in keyof IRepositoryDocument]: IRepositoryDocument[P]; + }>; constructor( data: Partial<{ [P in keyof IRepositoryDocument]: IRepositoryDocument[P] }> ) { @@ -167,7 +167,7 @@ export async function getRepositoryFromGitHub(opt: { opt.repo = opt.repo.replace(".git", ""); } const octokit = new Octokit({ auth: opt.accessToken }); - let r; + let r: RestEndpointMethodTypes["repos"]["get"]["response"]["data"]; try { r = ( await octokit.repos.get({