const {
github: { freeCodeCampRepo, defaultBase },
oneoff: { productionRun }
} = require('../lib/config');
const { closeOpen } = require('../lib/pr-tasks');
const { openJSONFile, ProcessingLog, rateLimiter } = require('../lib/utils');
const log = new ProcessingLog('prs-closed-reopened');
log.start();
const getUserInput = async () => {
let filename = process.argv[2];
if (!filename) {
throw '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(freeCodeCampRepo, defaultBase);
return prs;
})()
.then(async prs => {
for (let { number, errorDesc } of prs) {
if (errorDesc !== 'unknown error') {
log.add(number, { number, closedOpened: true, errorDesc });
if (productionRun) {
await closeOpen(number);
await rateLimiter(90000);
} else {
log.add(number, { number, closedOpened: false, errorDesc });
})
.then(() => {
log.finish();
console.log('closing/reopening of PRs complete');
.catch(err => {
console.log(err);
});