fix: auth issue & profile save issue

This commit is contained in:
tdurieux
2026-05-18 16:04:09 +03:00
parent e73ad48115
commit 39fadd6cf0
3 changed files with 49 additions and 4 deletions
+1 -1
View File
@@ -1115,7 +1115,7 @@ angular
if (data.terms) {
$scope.terms = data.terms.join("\n");
}
$scope.option = Object.assign({}, $scope.option, data.options);
$scope.options = Object.assign({}, $scope.options, data.options);
});
}
getDefault();
+25 -2
View File
@@ -4,7 +4,7 @@ import { RestEndpointMethodTypes } from "@octokit/rest";
import AnonymousError from "../AnonymousError";
import { isConnected } from "../../server/database";
import { octokit } from "../GitHubUtils";
import { checkToken, octokit } from "../GitHubUtils";
import { IRepositoryDocument } from "../model/repositories/repositories.types";
import RepositoryModel from "../model/repositories/repositories.model";
@@ -306,13 +306,36 @@ export async function getRepositoryFromGitHub(opt: {
})
).data as RestEndpointMethodTypes["repos"]["get"]["response"]["data"];
} catch (idError) {
const idStatus = (idError as { status?: number }).status;
if (
idStatus === 401 ||
idStatus === 403 ||
!(await checkToken(opt.accessToken))
) {
throw new AnonymousError("token_expired", {
httpStatus: 401,
object: { owner: opt.owner, repo: opt.repo },
cause: idError as Error,
});
}
throw new AnonymousError("repo_not_found", {
httpStatus: (idError as { status?: number }).status || 404,
httpStatus: idStatus || 404,
object: { owner: opt.owner, repo: opt.repo },
cause: idError as Error,
});
}
} else {
if (
status === 401 ||
status === 403 ||
!(await checkToken(opt.accessToken))
) {
throw new AnonymousError("token_expired", {
httpStatus: 401,
object: { owner: opt.owner, repo: opt.repo },
cause: error as Error,
});
}
throw new AnonymousError("repo_not_found", {
httpStatus: status,
object: {
+23 -1
View File
@@ -3,6 +3,8 @@ import { Parse } from "unzip-stream";
import archiver = require("archiver");
import GitHubDownload from "./source/GitHubDownload";
import { classifyGitHubMissError } from "./source/GitHubBase";
import AnonymousError from "./AnonymousError";
import {
AnonymizeTransformer,
anonymizePathCompiled,
@@ -81,7 +83,27 @@ export async function streamAnonymizedZip(
getToken: opt.getToken,
});
const response = await source.getZipUrl();
let response;
try {
response = await source.getZipUrl();
} catch (error) {
const code = await classifyGitHubMissError(error, {
organization: opt.organization,
repoName: opt.repoName,
repoId: opt.repoId,
commit: opt.commit,
getToken: opt.getToken,
});
const status = (error as { status?: number }).status;
throw new AnonymousError(code, {
httpStatus: status && status >= 500 ? 502 : status || 502,
cause: error as Error,
object: {
repoId: opt.repoId,
fullName: `${opt.organization}/${opt.repoName}`,
},
});
}
const downloadStream = got.stream(response.url);
res.on("error", (error) => {