Compare commits
5 Commits
v1.3.1
...
5c842eccff
| Author | SHA1 | Date | |
|---|---|---|---|
| 5c842eccff | |||
| 0147ab1d9d | |||
| c075f14939 | |||
| 2dffe6e3b6 | |||
| 07288bee33 |
@@ -1,5 +1,8 @@
|
|||||||
### Changelog
|
### Changelog
|
||||||
|
|
||||||
|
#### [v1.3.2](https://git.w33ble.com/w33ble/gh-action-bot/compare/v1.3.1...v1.3.2) (25 October 2018)
|
||||||
|
- fix: correct month in log output [`07288be`](https://git.w33ble.com/w33ble/gh-action-bot/commit/07288bee33d6861aa53e88e856174868f37b1fd5)
|
||||||
|
|
||||||
#### [v1.3.1](https://git.w33ble.com/w33ble/gh-action-bot/compare/v1.2.1...v1.3.1) (23 October 2018)
|
#### [v1.3.1](https://git.w33ble.com/w33ble/gh-action-bot/compare/v1.2.1...v1.3.1) (23 October 2018)
|
||||||
- feat: add a clean command [`f3773f7`](https://git.w33ble.com/w33ble/gh-action-bot/commit/f3773f7ee7c0de42997a5b19cc5ee215da3f06ec)
|
- feat: add a clean command [`f3773f7`](https://git.w33ble.com/w33ble/gh-action-bot/commit/f3773f7ee7c0de42997a5b19cc5ee215da3f06ec)
|
||||||
- feat: track processed, comments [`31b55fc`](https://git.w33ble.com/w33ble/gh-action-bot/commit/31b55fc7c2d7042e428a12f04124e1c4cd63fd28)
|
- feat: track processed, comments [`31b55fc`](https://git.w33ble.com/w33ble/gh-action-bot/commit/31b55fc7c2d7042e428a12f04124e1c4cd63fd28)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gh-action-bot",
|
"name": "gh-action-bot",
|
||||||
"version": "1.3.1",
|
"version": "1.3.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Action bot for Github",
|
"description": "Action bot for Github",
|
||||||
"main": "index",
|
"main": "index",
|
||||||
|
|||||||
@@ -21,9 +21,7 @@ async function forceRetest() {
|
|||||||
comments
|
comments
|
||||||
.filter(comment => bodyRegexp.test(comment.body) && comment.owner === COMMENT_ACTOR)
|
.filter(comment => bodyRegexp.test(comment.body) && comment.owner === COMMENT_ACTOR)
|
||||||
.forEach(async comment => {
|
.forEach(async comment => {
|
||||||
const res = await deleteComment(repo, comment.id);
|
await deleteComment(repo, comment.id);
|
||||||
if (res) logger.debug(`Comment ${comment.id} deleted`);
|
|
||||||
else logger.error(new Error(`Failed to remove comment ${comment.id}`));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import dotenv from 'dotenv';
|
import dotenv from 'dotenv';
|
||||||
import logger from './lib/logger.mjs';
|
import logger from './lib/logger.mjs';
|
||||||
import createRepo from './lib/create_repo.mjs';
|
import createRepo from './lib/create_repo.mjs';
|
||||||
import { createComment, deleteComment } from './lib/comments.mjs';
|
import createPullComment from './lib/create_pull_comment.mjs';
|
||||||
|
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
|
|
||||||
@@ -14,10 +14,7 @@ async function forceRetest() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const repo = createRepo(ownerRepo);
|
const repo = createRepo(ownerRepo);
|
||||||
const comment = await createComment(repo, prNumber, PULL_RETEST_BODY);
|
await createPullComment(repo, prNumber, PULL_RETEST_BODY, { delete: true });
|
||||||
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));
|
forceRetest().catch(err => logger.error(err));
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import getComments from './lib/get_comments.mjs';
|
|||||||
import getPull from './lib/get_pull.mjs';
|
import getPull from './lib/get_pull.mjs';
|
||||||
import getCommits from './lib/get_commits.mjs';
|
import getCommits from './lib/get_commits.mjs';
|
||||||
import getCommitStatus from './lib/get_commit_status.mjs';
|
import getCommitStatus from './lib/get_commit_status.mjs';
|
||||||
import { createComment, deleteComment } from './lib/comments.mjs';
|
import createPullComment from './lib/create_pull_comment.mjs';
|
||||||
import History from './lib/history.mjs';
|
import History from './lib/history.mjs';
|
||||||
|
|
||||||
// load env vars from .env file
|
// load env vars from .env file
|
||||||
@@ -80,12 +80,9 @@ async function ghActionBot() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
records.map(async record => {
|
records.map(record =>
|
||||||
logger.log(`Re-testing PR #${record.pull.number}`);
|
createPullComment(repo, record.pull.number, PULL_RETEST_BODY, { delete: true })
|
||||||
const comment = await createComment(repo, records[0].pull.number, PULL_RETEST_BODY);
|
)
|
||||||
logger.debug(`Created comment id ${comment.id}`);
|
|
||||||
await deleteComment(repo, comment.id);
|
|
||||||
})
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
|
import logger from './logger.mjs';
|
||||||
|
|
||||||
export async function createComment(repo, issueId, body) {
|
export async function createComment(repo, issueId, body) {
|
||||||
return repo.issues(issueId).comments.create({ body });
|
return repo.issues(issueId).comments.create({ body });
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function deleteComment(repo, commentId) {
|
export async function deleteComment(repo, commentId) {
|
||||||
return repo.issues.comments(commentId).remove();
|
const res = await repo.issues.comments(commentId).remove();
|
||||||
|
if (res) logger.debug(`Comment ${commentId} deleted`);
|
||||||
|
else logger.error(new Error(`Failed to remove comment ${commentId}`));
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|||||||
19
src/lib/create_pull_comment.mjs
Normal file
19
src/lib/create_pull_comment.mjs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import logger from './logger.mjs';
|
||||||
|
import { createComment, deleteComment } from './comments.mjs';
|
||||||
|
|
||||||
|
const sleep = async ms => new Promise(resolve => setTimeout(resolve, ms));
|
||||||
|
|
||||||
|
export default async function createPullComment(repo, number, body, opts = {}) {
|
||||||
|
logger.log(`Adding comment to PR #${number}`);
|
||||||
|
const comment = await createComment(repo, number, body);
|
||||||
|
logger.debug(`Created comment id ${comment.id}`);
|
||||||
|
|
||||||
|
const options = Object.assign({ delete: false, delay: 250 }, opts);
|
||||||
|
|
||||||
|
if (options.delete) {
|
||||||
|
await sleep(options.delay);
|
||||||
|
await deleteComment(repo, comment.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
return comment.id;
|
||||||
|
}
|
||||||
@@ -11,7 +11,7 @@ const zeroPad = (str, len) => {
|
|||||||
|
|
||||||
const getTimestamp = () => {
|
const getTimestamp = () => {
|
||||||
const d = new Date();
|
const d = new Date();
|
||||||
return `${[d.getFullYear(), zeroPad(d.getMonth(), 2), zeroPad(d.getDate(), 2)].join('/')} ${[
|
return `${[d.getFullYear(), zeroPad(d.getMonth() + 1, 2), zeroPad(d.getDate(), 2)].join('/')} ${[
|
||||||
zeroPad(d.getHours(), 2),
|
zeroPad(d.getHours(), 2),
|
||||||
zeroPad(d.getMinutes(), 2),
|
zeroPad(d.getMinutes(), 2),
|
||||||
zeroPad(d.getSeconds(), 2),
|
zeroPad(d.getSeconds(), 2),
|
||||||
|
|||||||
Reference in New Issue
Block a user