* 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
58 lines
1.5 KiB
JavaScript
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 };
|