mirror of
https://github.com/marocchino/sticky-pull-request-comment.git
synced 2025-12-19 06:25:50 +00:00
✨ hide details
This commit is contained in:
parent
53e089cfe2
commit
4a83f71279
6 changed files with 90 additions and 1 deletions
|
|
@ -5,6 +5,7 @@ import {
|
||||||
createComment,
|
createComment,
|
||||||
deleteComment,
|
deleteComment,
|
||||||
findPreviousComment,
|
findPreviousComment,
|
||||||
|
getBodyOf,
|
||||||
updateComment
|
updateComment
|
||||||
} from "../src/comment"
|
} from "../src/comment"
|
||||||
|
|
||||||
|
|
@ -177,3 +178,42 @@ it("deleteComment", async () => {
|
||||||
repo: "sticky-pull-request-comment"
|
repo: "sticky-pull-request-comment"
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe("getBodyOf", () => {
|
||||||
|
const nullPrevious = {}
|
||||||
|
const simplePrevious = {
|
||||||
|
body: "hello there\n<!-- Sticky Pull Request CommentTypeA -->"
|
||||||
|
}
|
||||||
|
const detailsPrevious = {
|
||||||
|
body: `
|
||||||
|
<details open>
|
||||||
|
<summary>title</summary>
|
||||||
|
|
||||||
|
content
|
||||||
|
</details>
|
||||||
|
<!-- Sticky Pull Request CommentTypeA -->
|
||||||
|
`
|
||||||
|
}
|
||||||
|
const replaced = `
|
||||||
|
<details>
|
||||||
|
<summary>title</summary>
|
||||||
|
|
||||||
|
content
|
||||||
|
</details>
|
||||||
|
<!-- Sticky Pull Request CommentTypeA -->
|
||||||
|
`
|
||||||
|
test.each`
|
||||||
|
append | hideDetails | previous | expected
|
||||||
|
${false} | ${false} | ${detailsPrevious} | ${undefined}
|
||||||
|
${true} | ${false} | ${nullPrevious} | ${undefined}
|
||||||
|
${true} | ${false} | ${detailsPrevious} | ${detailsPrevious.body}
|
||||||
|
${true} | ${true} | ${nullPrevious} | ${undefined}
|
||||||
|
${true} | ${true} | ${simplePrevious} | ${simplePrevious.body}
|
||||||
|
${true} | ${true} | ${detailsPrevious} | ${replaced}
|
||||||
|
`(
|
||||||
|
"receive $previous, $append, $hideDetails and returns $expected",
|
||||||
|
({append, hideDetails, previous, expected}) => {
|
||||||
|
expect(getBodyOf(previous, append, hideDetails)).toEqual(expected)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ beforeEach(() => {
|
||||||
process.env["INPUT_APPEND"] = "false"
|
process.env["INPUT_APPEND"] = "false"
|
||||||
process.env["INPUT_RECREATE"] = "false"
|
process.env["INPUT_RECREATE"] = "false"
|
||||||
process.env["INPUT_DELETE"] = "false"
|
process.env["INPUT_DELETE"] = "false"
|
||||||
|
process.env["INPUT_HIDE_DETAILS"] = "false"
|
||||||
process.env["INPUT_GITHUB_TOKEN"] = "some-token"
|
process.env["INPUT_GITHUB_TOKEN"] = "some-token"
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -17,6 +18,7 @@ afterEach(() => {
|
||||||
delete process.env["INPUT_APPEND"]
|
delete process.env["INPUT_APPEND"]
|
||||||
delete process.env["INPUT_RECREATE"]
|
delete process.env["INPUT_RECREATE"]
|
||||||
delete process.env["INPUT_DELETE"]
|
delete process.env["INPUT_DELETE"]
|
||||||
|
delete process.env["INPUT_HIDE_DETAILS"]
|
||||||
delete process.env["INPUT_GITHUB_TOKEN"]
|
delete process.env["INPUT_GITHUB_TOKEN"]
|
||||||
delete process.env["INPUT_PATH"]
|
delete process.env["INPUT_PATH"]
|
||||||
})
|
})
|
||||||
|
|
@ -31,6 +33,7 @@ test("repo", () => {
|
||||||
append: false,
|
append: false,
|
||||||
recreate: false,
|
recreate: false,
|
||||||
deleteOldComment: false,
|
deleteOldComment: false,
|
||||||
|
hideDetails: false,
|
||||||
githubToken: "some-token"
|
githubToken: "some-token"
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -44,6 +47,7 @@ test("header", () => {
|
||||||
append: false,
|
append: false,
|
||||||
recreate: false,
|
recreate: false,
|
||||||
deleteOldComment: false,
|
deleteOldComment: false,
|
||||||
|
hideDetails: false,
|
||||||
githubToken: "some-token"
|
githubToken: "some-token"
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -57,6 +61,7 @@ test("append", () => {
|
||||||
append: true,
|
append: true,
|
||||||
recreate: false,
|
recreate: false,
|
||||||
deleteOldComment: false,
|
deleteOldComment: false,
|
||||||
|
hideDetails: false,
|
||||||
githubToken: "some-token"
|
githubToken: "some-token"
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -70,6 +75,7 @@ test("recreate", () => {
|
||||||
append: false,
|
append: false,
|
||||||
recreate: true,
|
recreate: true,
|
||||||
deleteOldComment: false,
|
deleteOldComment: false,
|
||||||
|
hideDetails: false,
|
||||||
githubToken: "some-token"
|
githubToken: "some-token"
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -83,6 +89,21 @@ test("delete", () => {
|
||||||
append: false,
|
append: false,
|
||||||
recreate: false,
|
recreate: false,
|
||||||
deleteOldComment: true,
|
deleteOldComment: true,
|
||||||
|
hideDetails: false,
|
||||||
|
githubToken: "some-token"
|
||||||
|
})
|
||||||
|
})
|
||||||
|
test("hideDetails", () => {
|
||||||
|
process.env["INPUT_HIDE_DETAILS"] = "true"
|
||||||
|
expect(require("../src/config")).toMatchObject({
|
||||||
|
pullRequestNumber: expect.any(Number),
|
||||||
|
repo: {owner: "marocchino", repo: "stick-pull-request-comment"},
|
||||||
|
body: "",
|
||||||
|
header: "",
|
||||||
|
append: false,
|
||||||
|
recreate: false,
|
||||||
|
deleteOldComment: false,
|
||||||
|
hideDetails: true,
|
||||||
githubToken: "some-token"
|
githubToken: "some-token"
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -97,6 +118,7 @@ describe("path", () => {
|
||||||
append: false,
|
append: false,
|
||||||
recreate: false,
|
recreate: false,
|
||||||
deleteOldComment: false,
|
deleteOldComment: false,
|
||||||
|
hideDetails: false,
|
||||||
githubToken: "some-token"
|
githubToken: "some-token"
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -111,6 +133,7 @@ describe("path", () => {
|
||||||
append: false,
|
append: false,
|
||||||
recreate: false,
|
recreate: false,
|
||||||
deleteOldComment: false,
|
deleteOldComment: false,
|
||||||
|
hideDetails: false,
|
||||||
githubToken: "some-token"
|
githubToken: "some-token"
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
@ -126,6 +149,7 @@ test("message", () => {
|
||||||
append: false,
|
append: false,
|
||||||
recreate: false,
|
recreate: false,
|
||||||
deleteOldComment: false,
|
deleteOldComment: false,
|
||||||
|
hideDetails: false,
|
||||||
githubToken: "some-token"
|
githubToken: "some-token"
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,10 @@ inputs:
|
||||||
description: "delete the previously created comment. Only `true` is allowed. Just skip this item when you don't need it."
|
description: "delete the previously created comment. Only `true` is allowed. Just skip this item when you don't need it."
|
||||||
default: "false"
|
default: "false"
|
||||||
required: false
|
required: false
|
||||||
|
hide_details:
|
||||||
|
description: "hide summary tags in the previously created comment. Only `true` is allowed. Just skip this item when you don't need it."
|
||||||
|
default: "false"
|
||||||
|
required: false
|
||||||
message:
|
message:
|
||||||
description: "comment message"
|
description: "comment message"
|
||||||
required: false
|
required: false
|
||||||
|
|
|
||||||
|
|
@ -81,3 +81,19 @@ export async function deleteComment(
|
||||||
comment_id
|
comment_id
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getBodyOf(
|
||||||
|
previous: {body?: string},
|
||||||
|
append: boolean,
|
||||||
|
hideDetails: boolean
|
||||||
|
): string | undefined {
|
||||||
|
if (!append) {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hideDetails) {
|
||||||
|
return previous.body
|
||||||
|
}
|
||||||
|
|
||||||
|
return previous.body?.replace(/(<details.*?)\s*\bopen\b(.*>)/g, "$1$2")
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,9 @@ export const pullRequestNumber =
|
||||||
export const repo = buildRepo()
|
export const repo = buildRepo()
|
||||||
export const header = core.getInput("header", {required: false})
|
export const header = core.getInput("header", {required: false})
|
||||||
export const append = core.getBooleanInput("append", {required: true})
|
export const append = core.getBooleanInput("append", {required: true})
|
||||||
|
export const hideDetails = core.getBooleanInput("hide_details", {
|
||||||
|
required: true
|
||||||
|
})
|
||||||
export const recreate = core.getBooleanInput("recreate", {required: true})
|
export const recreate = core.getBooleanInput("recreate", {required: true})
|
||||||
export const deleteOldComment = core.getBooleanInput("delete", {required: true})
|
export const deleteOldComment = core.getBooleanInput("delete", {required: true})
|
||||||
export const githubToken = core.getInput("GITHUB_TOKEN", {required: true})
|
export const githubToken = core.getInput("GITHUB_TOKEN", {required: true})
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import {
|
||||||
deleteOldComment,
|
deleteOldComment,
|
||||||
githubToken,
|
githubToken,
|
||||||
header,
|
header,
|
||||||
|
hideDetails,
|
||||||
pullRequestNumber,
|
pullRequestNumber,
|
||||||
recreate,
|
recreate,
|
||||||
repo
|
repo
|
||||||
|
|
@ -14,6 +15,7 @@ import {
|
||||||
createComment,
|
createComment,
|
||||||
deleteComment,
|
deleteComment,
|
||||||
findPreviousComment,
|
findPreviousComment,
|
||||||
|
getBodyOf,
|
||||||
updateComment
|
updateComment
|
||||||
} from "./comment"
|
} from "./comment"
|
||||||
|
|
||||||
|
|
@ -50,7 +52,7 @@ async function run(): Promise<undefined> {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const previousBody = append ? previous.body : undefined
|
const previousBody = getBodyOf(previous, append, hideDetails)
|
||||||
if (recreate) {
|
if (recreate) {
|
||||||
await deleteComment(octokit, repo, previous.id)
|
await deleteComment(octokit, repo, previous.id)
|
||||||
await createComment(
|
await createComment(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue