mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-23 13:00:41 -04:00
52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
require('dotenv').config({ path: '../.env' });
|
|
const { closeOpen } = require('../pr-tasks');
|
|
const { openJSONFile, ProcessingLog, rateLimiter } = require('../utils');
|
|
|
|
const log = new ProcessingLog('prs-closed-reopened');
|
|
|
|
log.start();
|
|
const getUserInput = async () => {
|
|
let [ n, f, filename ] = process.argv;
|
|
|
|
if (!filename) {
|
|
throw `Please specify a file with PRs which needed to be closed and reopened.`;
|
|
}
|
|
|
|
let fileObj = openJSONFile(filename);
|
|
let { prs } = fileObj;
|
|
if (!prs.length) {
|
|
throw `Either no PRs found in file or there or an error occurred.`
|
|
}
|
|
return { prs };
|
|
};
|
|
|
|
(async () => {
|
|
const { prs } = await getUserInput();
|
|
return prs;
|
|
})()
|
|
.then(async (prs) => {
|
|
const firstPR = prs[0].number;
|
|
const lastPR = prs[prs.length - 1].number;
|
|
log.setFirstLast({ firstPR, lastPR });
|
|
for (let { number, data: { errorDesc } } of prs) {
|
|
if (errorDesc !== "unknown error") {
|
|
log.add(number, { closedOpened: true, errorDesc });
|
|
if (process.env.PRODUCTION_RUN === 'true') {
|
|
await closeOpen(number);
|
|
await rateLimiter(90000);
|
|
}
|
|
}
|
|
else {
|
|
log.add(number, { closedOpened: false, errorDesc });
|
|
}
|
|
}
|
|
})
|
|
.then(() => {
|
|
log.finish();
|
|
console.log('closing/reopening of PRs complete');
|
|
})
|
|
.catch(err => {
|
|
log.finish();
|
|
console.log(err)
|
|
})
|