Skip to content

Merge run post-merge steps: delete the Issue branch, close the issue, survive failures and Ctrl-C #92

Closed

Description

@JacobStephens2

Parent

#26

What to build

A Self-merge ends with the Issue branch gone from origin and the issue closed.

  • After a successful merge, thirdshift deletes the Issue branch on origin. Cleanup already removes the local branch and the worktree.
  • If the issue is still open, it closes it with the comment Closed by #<pr>, merged into <base> by a thirdshift Merge run. The merge only closes the issue by itself when the Base branch is the repository's default branch.

The merge can't be undone, so a failure in either step doesn't turn the Run into a Failed run. The Run still exits 0 and prints the PR URL, with a warning on stderr for each failed step naming what to do by hand. Ctrl-C decides the outcome by whether the PR merged: before the merge succeeds it gives a Failed run as today; after it, thirdshift finishes these steps and exits as merged.

Acceptance criteria

  • After a Merge run, the Issue branch no longer exists on origin.
  • A Merge run into a non-default Base branch closes the issue with the comment above; into the default branch, thirdshift doesn't close it again or comment.
  • A failed remote branch deletion or issue close still exits 0 with the PR URL on stdout and a warning on stderr naming the manual fix.
  • Ctrl-C after the merge succeeded finishes the post-merge steps and exits 0 as merged; Ctrl-C before it gives a Failed run.
  • The fake gh supports issue close with --comment.
  • README documents the post-merge steps and the success-with-warnings outcome.

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions