mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-10-19 22:27:20 +02:00
Fix repository cleanup after removal and expiration (#782)
This commit is contained in:
1 parent
46e956a779
commit
35c3b1804b
8 files changed
+370
-69
No files matched your search
@@ -17,23 +17,31 @@ export async function processRemoveRepository(
|
||||
) {
|
||||
const { connect, getRepository }: Database =
|
||||
database || require("../../server/database");
|
||||
let repo: Awaited<ReturnType<typeof getRepositoryImport>> | undefined;
|
||||
try {
|
||||
await connect();
|
||||
logger.info("removing repository", { repoId: job.data.repoId });
|
||||
const repo = await getRepository(job.data.repoId);
|
||||
repo = await getRepository(job.data.repoId);
|
||||
await repo.updateStatus(RepositoryStatus.REMOVING, "");
|
||||
try {
|
||||
await repo.remove();
|
||||
} catch (error) {
|
||||
if (error instanceof Error) {
|
||||
await repo.updateStatus(RepositoryStatus.ERROR, error.message);
|
||||
} else if (typeof error === "string") {
|
||||
await repo.updateStatus(RepositoryStatus.ERROR, error);
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
await repo.remove();
|
||||
logger.info("repository removed", { repoId: job.data.repoId });
|
||||
} catch (error) {
|
||||
if (repo) {
|
||||
const message =
|
||||
error instanceof Error
|
||||
? error.message
|
||||
: typeof error === "string"
|
||||
? error
|
||||
: "removal_failed";
|
||||
try {
|
||||
await repo.updateStatus(RepositoryStatus.ERROR, message);
|
||||
} catch (statusError) {
|
||||
logger.error("failed to record repository removal error", {
|
||||
...serializeError(statusError),
|
||||
repoId: job.data.repoId,
|
||||
});
|
||||
}
|
||||
}
|
||||
logger.error("repository removal failed", {
|
||||
...serializeError(error),
|
||||
repoId: job.data.repoId,
|
||||
|
||||
Reference in new issue
Block a user