From 35ba31ce7a2c4f066c1ebc22be59ea259e1f7c33 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Mar 2026 14:00:40 +0000 Subject: [PATCH 1/2] Initial plan From 1c12ed22833882f1c5ec4eba69a075aa06afeae1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Mar 2026 14:12:24 +0000 Subject: [PATCH 2/2] Fix: handle undefined context in push_to_pull_request_branch Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- actions/setup/js/push_to_pull_request_branch.cjs | 2 +- .../setup/js/push_to_pull_request_branch.test.cjs | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/actions/setup/js/push_to_pull_request_branch.cjs b/actions/setup/js/push_to_pull_request_branch.cjs index d4cb99f496c..e7f908699f7 100644 --- a/actions/setup/js/push_to_pull_request_branch.cjs +++ b/actions/setup/js/push_to_pull_request_branch.cjs @@ -192,7 +192,7 @@ async function main(config = {}) { // Compute the target branch name based on target configuration let pullNumber; if (target === "triggering") { - pullNumber = context.payload?.pull_request?.number || context.payload?.issue?.number; + pullNumber = typeof context !== "undefined" ? context.payload?.pull_request?.number || context.payload?.issue?.number : undefined; if (!pullNumber) { return { success: false, error: 'push-to-pull-request-branch with target "triggering" requires pull request context' }; diff --git a/actions/setup/js/push_to_pull_request_branch.test.cjs b/actions/setup/js/push_to_pull_request_branch.test.cjs index 19546540220..dad9804787f 100644 --- a/actions/setup/js/push_to_pull_request_branch.test.cjs +++ b/actions/setup/js/push_to_pull_request_branch.test.cjs @@ -334,6 +334,19 @@ index 0000000..abc1234 expect(result.error).toContain("pull request context"); }); + it('should fail gracefully with target "triggering" when context is undefined (MCP daemon mode)', async () => { + delete global.context; + + const patchPath = createPatchFile(); + + const module = await loadModule(); + const handler = await module.main({ target: "triggering" }); + const result = await handler({ patch_path: patchPath }, {}); + + expect(result.success).toBe(false); + expect(result.error).toContain("pull request context"); + }); + it('should handle schedule event with target "*" and explicit PR number', async () => { mockContext.eventName = "schedule"; delete mockContext.payload.pull_request;