Files
freeCodeCamp/tools/contributor/lib/pr-tasks/close-open.js
Oliver Eyton-Williams c8d7f0a782 feat(tools): remove eslint-plugin-prettier for prettier (#42438)
* feat: remove eslint-plugin-prettier for prettier

This removes the annoying lint warnings when all that needs to change is
formatting

* fix: use .js lint-staged config to ignore properly

* fix: lint everything if a lot of files are changed

It's faster than making lots of individual linter calls

* chore: apply prettier

* fix: ignore code in curriculum-file-structure
2021-10-06 21:02:21 +05:30

58 lines
1.5 KiB
JavaScript

const { addComment } = require('./add-comment');
const { rateLimiter } = require('../utils');
const {
github: { owner, secret, freeCodeCampRepo, defaultBase }
} = require('../config');
const { Octokit } = require('@octokit/rest');
const octokit = new Octokit({ auth: secret });
/* closes and reopens an open PR with applicable comment */
const closeOpen = async (number) => {
await octokit.pulls
.update({
owner,
repo: freeCodeCampRepo,
number,
state: 'closed',
base: defaultBase
})
.then(async () => {
await rateLimiter(5000);
return octokit.pulls.update({
owner,
repo: freeCodeCampRepo,
number,
state: 'open',
base: defaultBase
});
})
.then(async () => {
await rateLimiter(1000);
const msg = 'Closed/Reopened to resolve a specific Travis build failure.';
await addComment(number, msg);
})
.catch(async (err) => {
// Octokit stores message as a stringified object
const { errorMg } = JSON.parse(err.message);
if (
errorMg ===
'state cannot be changed. The repository that submitted this pull request has been deleted.'
) {
await rateLimiter(1000);
await addComment(
number,
"This PR was closed because user's repo was deleted."
);
console.log(
`PR #${number} was closed because user's repo was deleted.`
);
} else {
throw err;
}
});
};
module.exports = { closeOpen };