Fix contributor website import script (#8404)

We had duplicate entries in the database for issueLabels/ prLabels
This commit is contained in:
Félix Malfait 2024-11-08 10:57:17 +01:00 committed by GitHub
parent f06cdbdfc6
commit b2004fe6b4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 33 additions and 12 deletions

View File

@ -35,6 +35,7 @@ const insertMany = async (
options?: {
onConflictKey?: string;
onConflictUpdateObject?: any;
onConflictDoNothing?: boolean;
},
) => {
const query = pgDb.insert(model).values(data);
@ -50,6 +51,10 @@ const insertMany = async (
}
}
if (options?.onConflictDoNothing && !options?.onConflictKey) {
return query.onConflictDoNothing().execute();
}
if (options?.onConflictKey) {
return query
.onConflictDoNothing({

View File

@ -9,7 +9,11 @@ export async function getLatestUpdate() {
desc(pullRequestModel.updatedAt),
);
const latestIssue = await findOne(issueModel, desc(issueModel.updatedAt));
const prDate = new Date(latestPR[0].updatedAt);
const issueDate = new Date(latestIssue[0].updatedAt);
const prDate = latestPR[0]
? new Date(latestPR[0].updatedAt)
: new Date('2023-01-01');
const issueDate = latestIssue[0]
? new Date(latestIssue[0].updatedAt)
: new Date('2023-01-01');
return (prDate > issueDate ? prDate : issueDate).toISOString();
}

View File

@ -82,12 +82,18 @@ export async function saveIssuesToDB(
},
},
);
await insertMany(issueLabelModel, [
await insertMany(
issueLabelModel,
[
{
issueId: issue.id,
labelId: label.id,
},
],
{
pullRequestId: issue.id,
labelId: label.id,
onConflictDoNothing: true,
},
]);
);
}
}
}

View File

@ -85,12 +85,18 @@ export async function savePRsToDB(
},
},
);
await insertMany(pullRequestLabelModel, [
await insertMany(
pullRequestLabelModel,
[
{
pullRequestId: pr.id,
labelId: label.id,
},
],
{
pullRequestId: pr.id,
labelId: label.id,
onConflictDoNothing: true,
},
]);
);
}
}
}

View File

@ -13,7 +13,7 @@ export const executePartialSync = async () => {
return new Error('No GitHub token provided');
}
console.log('Synching data..');
console.log('Syncing data... (partial sync)');
const query = graphql.defaults({
headers: {

View File

@ -14,7 +14,7 @@ export const fetchAndSaveGithubData = async () => {
return new Error('No GitHub token provided');
}
console.log('Synching data..');
console.log('Syncing data...');
const query = graphql.defaults({
headers: {