Repository navigation
fix(box): attempts on a repository GitHub doesn't host finish with the pick, and a pull request that doesn't open can be retried - #151
Merged
Conversation
…e pick, and a pull request that doesn't open can be retried The pr step ran gh pr create on any remote. On Gitea (#138) gh failed, the run failed at pr → open, cleanup was skipped and every worktree was left behind. - On a host gh can't open pull requests on (Gitea, Forgejo, GitLab, a folder; anything but github.com or a GitHub Enterprise host gh is signed in to), the step pushes the branch, says why it opened nothing, passes on the link the forge printed on push, and ends as skipped. A skipped leaf goes on like a success, so the run archives the other attempts and succeeds with the pick kept. - A pr step that fails is a publishing failure, not the agents' work: the run waits at a gate, "The pull request didn't open", with gh's words, the pick recorded and nothing archived. Retry publishing (approve) tries again; Finish without a pull request (reject) makes the step a skip and the run goes on. A restart asks the same question without running gh again. - Gates can name their two ways on (approve_label, reject_label); the app's run timeline and Review's Compare show them, Compare says what became of the pull request, and the CLI prints them. - URLs in push and gh output lose any user and password before they are kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
thank you |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #138.
Before
The
prstep pushed and then rangh pr createon any remote. On Gitea, gh failed ("none of the git remotes … point to a known GitHub host"), and the step failed with it. The attempts template's cleanup runs only after success, so the whole run failed, cleanup was skipped and every worktree stayed behind. A finished run has no way to retry a step.What changed
Checking the host first (
internal/box/prhost.go):ssh -G --, which reads the config and connects to nothing.gh auth status --hostname Hsucceeds (GitHub Enterprise).A pull request that fails on GitHub no longer fails the run:
prstep opens a gate, "The pull request didn't open". It quotes gh's words and says the agents' work and the pick are kept.berth run approve/berth run reject).Elsewhere:
Gategetsapprove_labelandreject_label, so the buttons in the app and the CLI say what they do./v1/reviewincludes theprstep.Gitea API pull requests: not added. The box has no Gitea credential (gh's token is GitHub-only), and
teacan't be assumed to be installed. Pushing the branch and passing on the forge's own compare link is the safe step now.Behaviour change: in your own flows, a
prstep that fails now waits at the gate instead of failing the run. A step withwhen: "failure"after aprstep won't run, because choosing "Finish without a pull request" counts as skipped, not failed.Proof
A pull request that didn't open (mock):
An attempts run on a Gitea repository, finished with its branch pushed:
The runs timeline:
Tests
The box tests use real git: a bare repository with a Gitea-style post-receive hook, and a fake
ghthat logs its calls.app/e2e/publish-failed.spec.ts(3 tests) passes.pnpm test, build,tsc -p e2e,cargo checkand the docs build pass.TestAttachPassesShiftEnterfails against tmux 3.7c, the same way on a cleanorigin/main.🤖 Generated with Claude Code