diff --git a/actions/setup/js/add_reaction.cjs b/actions/setup/js/add_reaction.cjs index 1c50697e86a..ad857c6324e 100644 --- a/actions/setup/js/add_reaction.cjs +++ b/actions/setup/js/add_reaction.cjs @@ -63,10 +63,11 @@ async function main() { /** * Resolve the REST API endpoint for non-discussion events. - * Returns null for discussion/discussion_comment/unsupported events (handled separately). + * Returns null for discussion/discussion_comment/pull_request_review/unsupported events (handled separately). * @param {string} eventName * @param {string} owner * @param {string} repo + * @param {Record} payload * @returns {string | null} */ function resolveRestEndpoint(eventName, owner, repo, payload) { @@ -108,6 +109,10 @@ function resolveRestEndpoint(eventName, owner, repo, payload) { return `/repos/${owner}/${repo}/pulls/comments/${reviewCommentId}/reactions`; } + case "pull_request_review": + // Reactions are not supported on review objects; skip silently. + return null; + default: return null; } @@ -126,6 +131,7 @@ function isRestReactionEvent(eventName) { * @param {string} eventName * @param {string} owner * @param {string} repo + * @param {Record} payload * @param {string} reaction */ async function handleGraphQLOrUnknownEvent(eventName, owner, repo, payload, reaction) { diff --git a/actions/setup/js/add_reaction.test.cjs b/actions/setup/js/add_reaction.test.cjs index 364a15936da..63402966f95 100644 --- a/actions/setup/js/add_reaction.test.cjs +++ b/actions/setup/js/add_reaction.test.cjs @@ -743,6 +743,13 @@ describe("add_reaction", () => { expect(mockCore.setFailed).not.toHaveBeenCalled(); }); + it("should return null without failure for pull_request_review even with empty payload", async () => { + const { resolveRestEndpoint } = await importHelpers(); + expect(resolveRestEndpoint("pull_request_review", "o", "r", {})).toBeNull(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); + expect(mockCore.error).not.toHaveBeenCalled(); + }); + it("should return null for discussion events (handled via GraphQL)", async () => { global.context = { eventName: "discussion", repo: { owner: "o", repo: "r" }, payload: { discussion: { number: 3 } } }; const { resolveRestEndpoint } = await importHelpers();