wei/pull

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

Ouverte

#661 ouverte le 29 juil. 2026

 (1 commentaire) (0 réaction) (0 personne assignée)JavaScript (720 forks)batch import
enhancementgood first issuehelp wanted

Métriques du dépôt

Stars
 (5 364 étoiles)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

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?

Guide contributeur