31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
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));
|