feat: append to previous comment message

This commit is contained in:
Simon Stender Boisen 2020-03-26 14:30:28 +01:00
parent dd253e3148
commit 168a45153d
4 changed files with 19 additions and 3 deletions

View file

@ -67,6 +67,14 @@ it("updateComment", async () => {
comment_id: 456, comment_id: 456,
body: "<!-- Sticky Pull Request CommentTypeA -->\nhello there" body: "<!-- Sticky Pull Request CommentTypeA -->\nhello there"
}); });
expect(
await updateComment(octokit, repo, 456, "hello there", "TypeA", "<!-- Sticky Pull Request CommentTypeA -->\nhello there")
).toBeUndefined();
expect(octokit.issues.updateComment).toBeCalledWith({
comment_id: 456,
body: "<!-- Sticky Pull Request CommentTypeA -->\nhello there\nhello there"
});
}); });
it("createComment", async () => { it("createComment", async () => {
const octokit = { const octokit = {

View file

@ -5,6 +5,9 @@ inputs:
header: header:
description: "Header to determine if the comment is to be updated, not shown on screen" description: "Header to determine if the comment is to be updated, not shown on screen"
required: false required: false
append:
description: "Indicate if new comment messages should be appended to previous comment message"
required: false
message: message:
description: "comment message" description: "comment message"
required: true required: true

View file

@ -10,11 +10,11 @@ export async function findPreviousComment(octokit, repo, issue_number, header) {
const h = headerComment(header); const h = headerComment(header);
return comments.find(comment => comment.body.startsWith(h)); return comments.find(comment => comment.body.startsWith(h));
} }
export async function updateComment(octokit, repo, comment_id, body, header) { export async function updateComment(octokit, repo, comment_id, body, header, previousBody?) {
await octokit.issues.updateComment({ await octokit.issues.updateComment({
...repo, ...repo,
comment_id, comment_id,
body: `${headerComment(header)}\n${body}` body: previousBody ? `${previousBody}\n${body}` : `${headerComment(header)}\n${body}`
}); });
} }
export async function createComment(octokit, repo, issue_number, body, header) { export async function createComment(octokit, repo, issue_number, body, header) {

View file

@ -15,11 +15,16 @@ async function run() {
const repo = context.repo; const repo = context.repo;
const body = core.getInput("message", { required: true }); const body = core.getInput("message", { required: true });
const header = core.getInput("header", { required: false }) || ""; const header = core.getInput("header", { required: false }) || "";
const append = core.getInput("append", { required: false }) || false;
const githubToken = core.getInput("GITHUB_TOKEN", { required: true }); const githubToken = core.getInput("GITHUB_TOKEN", { required: true });
const octokit = new GitHub(githubToken); const octokit = new GitHub(githubToken);
const previous = await findPreviousComment(octokit, repo, number, header); const previous = await findPreviousComment(octokit, repo, number, header);
if (previous) { if (previous) {
await updateComment(octokit, repo, previous.id, body, header); if (append) {
await updateComment(octokit, repo, previous.id, body, header, previous.body);
} else {
await updateComment(octokit, repo, previous.id, body, header);
}
} else { } else {
await createComment(octokit, repo, number, body, header); await createComment(octokit, repo, number, body, header);
} }