mirror of
https://github.com/marocchino/sticky-pull-request-comment.git
synced 2025-12-16 13:08:28 +00:00
Merge pull request #138 from jakemhiller/replace-option
Add option to delete the previous comment and create a new one instead of editing
This commit is contained in:
commit
9b57fdffdf
6 changed files with 49 additions and 13 deletions
|
|
@ -1,7 +1,8 @@
|
||||||
import {
|
import {
|
||||||
findPreviousComment,
|
findPreviousComment,
|
||||||
createComment,
|
createComment,
|
||||||
updateComment
|
updateComment,
|
||||||
|
deleteComment
|
||||||
} from "../src/comment";
|
} from "../src/comment";
|
||||||
const repo = {};
|
const repo = {};
|
||||||
it("findPreviousComment", async () => {
|
it("findPreviousComment", async () => {
|
||||||
|
|
@ -104,3 +105,17 @@ it("createComment", async () => {
|
||||||
body: "hello there\n<!-- Sticky Pull Request CommentTypeA -->"
|
body: "hello there\n<!-- Sticky Pull Request CommentTypeA -->"
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("deleteComment", async () => {
|
||||||
|
const octokit = {
|
||||||
|
issues: {
|
||||||
|
deleteComment: jest.fn(() => Promise.resolve())
|
||||||
|
}
|
||||||
|
};
|
||||||
|
expect(
|
||||||
|
await deleteComment(octokit, repo, 456)
|
||||||
|
).toBeUndefined();
|
||||||
|
expect(octokit.issues.deleteComment).toBeCalledWith({
|
||||||
|
comment_id: 456
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@ inputs:
|
||||||
append:
|
append:
|
||||||
description: "Indicate if new comment messages should be appended to previous comment message"
|
description: "Indicate if new comment messages should be appended to previous comment message"
|
||||||
required: false
|
required: false
|
||||||
|
recreate:
|
||||||
|
description: "Indicate if previous comment should be removed before creating a new comment"
|
||||||
|
required: false
|
||||||
message:
|
message:
|
||||||
description: "comment message"
|
description: "comment message"
|
||||||
required: false
|
required: false
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.createComment = exports.updateComment = exports.findPreviousComment = void 0;
|
exports.deleteComment = exports.createComment = exports.updateComment = exports.findPreviousComment = void 0;
|
||||||
function headerComment(header) {
|
function headerComment(header) {
|
||||||
return `<!-- Sticky Pull Request Comment${header} -->`;
|
return `<!-- Sticky Pull Request Comment${header} -->`;
|
||||||
}
|
}
|
||||||
|
|
@ -27,9 +27,15 @@ function updateComment(octokit, repo, comment_id, body, header, previousBody) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.updateComment = updateComment;
|
exports.updateComment = updateComment;
|
||||||
function createComment(octokit, repo, issue_number, body, header) {
|
function createComment(octokit, repo, issue_number, body, header, previousBody) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
yield octokit.issues.createComment(Object.assign(Object.assign({}, repo), { issue_number, body: `${body}\n${headerComment(header)}` }));
|
yield octokit.issues.createComment(Object.assign(Object.assign({}, repo), { issue_number, body: previousBody ? `${previousBody}\n${body}` : `${body}\n${headerComment(header)}` }));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.createComment = createComment;
|
exports.createComment = createComment;
|
||||||
|
function deleteComment(octokit, repo, comment_id) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
yield octokit.issues.deleteComment(Object.assign(Object.assign({}, repo), { comment_id }));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
exports.deleteComment = deleteComment;
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,7 @@ function run() {
|
||||||
const path = core.getInput("path", { required: false });
|
const path = core.getInput("path", { required: false });
|
||||||
const header = core.getInput("header", { required: false }) || "";
|
const header = core.getInput("header", { required: false }) || "";
|
||||||
const append = core.getInput("append", { required: false }) || false;
|
const append = core.getInput("append", { required: false }) || false;
|
||||||
|
const recreate = core.getInput("recreate", { required: false }) || false;
|
||||||
const githubToken = core.getInput("GITHUB_TOKEN", { required: true });
|
const githubToken = core.getInput("GITHUB_TOKEN", { required: true });
|
||||||
const octokit = new github_1.GitHub(githubToken);
|
const octokit = new github_1.GitHub(githubToken);
|
||||||
const previous = yield comment_1.findPreviousComment(octokit, repo, number, header);
|
const previous = yield comment_1.findPreviousComment(octokit, repo, number, header);
|
||||||
|
|
@ -61,11 +62,13 @@ function run() {
|
||||||
body = message;
|
body = message;
|
||||||
}
|
}
|
||||||
if (previous) {
|
if (previous) {
|
||||||
if (append) {
|
const previousBody = append && previous.body;
|
||||||
yield comment_1.updateComment(octokit, repo, previous.id, body, header, previous.body);
|
if (recreate) {
|
||||||
|
yield comment_1.deleteComment(octokit, repo, previous.id);
|
||||||
|
yield comment_1.createComment(octokit, repo, number, body, header, previousBody);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
yield comment_1.updateComment(octokit, repo, previous.id, body, header);
|
yield comment_1.updateComment(octokit, repo, previous.id, body, header, previousBody);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,16 @@ export async function updateComment(octokit, repo, comment_id, body, header, pre
|
||||||
body: previousBody ? `${previousBody}\n${body}` : `${body}\n${headerComment(header)}`
|
body: previousBody ? `${previousBody}\n${body}` : `${body}\n${headerComment(header)}`
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
export async function createComment(octokit, repo, issue_number, body, header) {
|
export async function createComment(octokit, repo, issue_number, body, header, previousBody?) {
|
||||||
await octokit.issues.createComment({
|
await octokit.issues.createComment({
|
||||||
...repo,
|
...repo,
|
||||||
issue_number,
|
issue_number,
|
||||||
body: `${body}\n${headerComment(header)}`
|
body: previousBody ? `${previousBody}\n${body}` : `${body}\n${headerComment(header)}`
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export async function deleteComment(octokit, repo, comment_id) {
|
||||||
|
await octokit.issues.deleteComment({
|
||||||
|
...repo,
|
||||||
|
comment_id,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
11
src/main.ts
11
src/main.ts
|
|
@ -1,6 +1,6 @@
|
||||||
import * as core from "@actions/core";
|
import * as core from "@actions/core";
|
||||||
import { context, GitHub } from "@actions/github";
|
import { context, GitHub } from "@actions/github";
|
||||||
import { findPreviousComment, createComment, updateComment } from "./comment";
|
import { findPreviousComment, createComment, updateComment, deleteComment } from "./comment";
|
||||||
import { readFileSync } from 'fs';
|
import { readFileSync } from 'fs';
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
|
|
@ -18,6 +18,7 @@ async function run() {
|
||||||
const path = core.getInput("path", { required: false });
|
const path = core.getInput("path", { required: false });
|
||||||
const header = core.getInput("header", { required: false }) || "";
|
const header = core.getInput("header", { required: false }) || "";
|
||||||
const append = core.getInput("append", { required: false }) || false;
|
const append = core.getInput("append", { required: false }) || false;
|
||||||
|
const recreate = core.getInput("recreate", { 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);
|
||||||
|
|
@ -35,10 +36,12 @@ async function run() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (previous) {
|
if (previous) {
|
||||||
if (append) {
|
const previousBody = append && previous.body;
|
||||||
await updateComment(octokit, repo, previous.id, body, header, previous.body);
|
if (recreate) {
|
||||||
|
await deleteComment(octokit, repo, previous.id);
|
||||||
|
await createComment(octokit, repo, number, body, header, previousBody);
|
||||||
} else {
|
} else {
|
||||||
await updateComment(octokit, repo, previous.id, body, header);
|
await updateComment(octokit, repo, previous.id, body, header, previousBody);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
await createComment(octokit, repo, number, body, header);
|
await createComment(octokit, repo, number, body, header);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue