import dotenv from 'dotenv'; import logger from './lib/logger.mjs'; import createRepo from './lib/create_repo.mjs'; import getPullComments from './lib/get_pull_comments.mjs'; import { deleteComment } from './lib/comments.mjs'; dotenv.config(); async function forceRetest() { const [ownerRepo, prNumber] = process.argv.splice(2); const { COMMENT_BODY_REGEXP, COMMENT_BODY_REGEXP_FLAGS, COMMENT_ACTOR } = process.env; if (!ownerRepo || !prNumber) { throw new Error('You must specify an owner/repo combo and a pull request number'); } const repo = createRepo(ownerRepo); const comments = await getPullComments(repo, prNumber); const bodyRegexp = new RegExp(COMMENT_BODY_REGEXP, COMMENT_BODY_REGEXP_FLAGS); comments .filter(comment => bodyRegexp.test(comment.body) && comment.owner === COMMENT_ACTOR) .forEach(async comment => { const res = await deleteComment(repo, comment.id); if (res) logger.debug(`Comment ${comment.id} deleted`); else logger.error(new Error(`Failed to remove comment ${comment.id}`)); }); } forceRetest().catch(err => logger.error(err));