When an agent merges main into a PR branch locally, the resulting merge commit cannot be pushed through any safe-outputs path:
pushSignedCommits: refusing unsigned push for branch 'autoloop/build-tsb-pandas-typescript-migration':
merge commit detected. GitHub's createCommitOnBranch GraphQL mutation cannot represent merge commits...
Rewrite the commits to use only regular files (mode 100644) with no merge commits,
or set push-signed-commits: false if the repository does not require signed commits.
Long-running branch workflows (like autoloop) need to merge main into the PR branch to stay current. The agent can't push directly (credentials are cleaned), so all pushes go through safe-outputs. But safe-outputs can't push merge commits through either path.
Problem
When an agent merges main into a PR branch locally, the resulting merge commit cannot be pushed through any safe-outputs path:
createCommitOnBranch) — can't represent merge commits (multiple parents)PushSignedCommitsUnsupportedShapein v0.74.2, which intentionally refuses to fall backResult:
The error message suggests
push-signed-commits: falsebut this config option doesn't exist in the schema.Context
Long-running branch workflows (like autoloop) need to merge main into the PR branch to stay current. The agent can't push directly (credentials are cleaned), so all pushes go through safe-outputs. But safe-outputs can't push merge commits through either path.
This blocks all three push mechanisms we've tried:
git ampatches — can't represent merges (Auto-switch push_to_pull_request_branch to bundle transport when merge commits are detected #30287)pushSignedCommits— GraphQL can't handle multiple parents (this issue)Suggested fixes
push-signed-commits: falseas a workflow config option — allow the git push fallback for repos that don't require signed commitsPOST /repos/{owner}/{repo}/merges) to merge main into the branch remotely before the agent runs, so the agent never creates a local merge commitExample
Related