wei/pull

FR: Merge method that rebases the fork's own commits onto upstream

オープン

#661 opened on 2026/07/29

 (1 件のコメント) (0 件のリアクション) (0 人の担当者)JavaScript (720 件のフォーク)batch import
enhancementgood first issuehelp wanted

Repository metrics

Stars
 (5,364 個のスター)
PR merge metrics
 (30d に merged PR はありません)

説明

Asked before in https://github.com/wei/pull/issues/163, https://github.com/wei/pull/issues/202 and https://github.com/wei/pull/issues/213, closed on the grounds that the API cannot do it.

My use case: maintain a default branch fork that contains main plus a few commits of my own, as in https://github.com/krlmlr/duckdb/ . Currently solved with a custom action and pruning .github/workflows because GitHub Actions can't push workflows.

A "reverse rebase" might be feasible with calls Pull already makes:

  1. PATCH /git/refs/heads/<base>-pull — temp branch at the upstream tip, force.
  2. POST /pulls — head <base>, base <base>-pull.
  3. PUT /pulls/{n}/merge with merge_method: "rebase" — replays the fork's own commits onto the upstream tip.
  4. PATCH /git/refs/heads/<base> with force: true — move the branch to the result.
  5. DELETE /git/refs/heads/<base>-pull.

Step 4 is what hardreset already does, so contents:write covers all of it, and the default branch needs no special handling. Conflicts surface as a 405 on step 3 and can take the existing conflictLabel path.

What do you think?

コントリビューターガイド