Detect and prevent empty-diff PRs from being auto-marked as merged during stack submit
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
Línea de trabajo
Reproduce el empty-diff stack del issue y, después, sigue los flujos de gh stack init y gh stack submit que crean o envían PRs. Determina dónde una rama no tiene commits más allá de su base y define si el comando debe advertir o detenerse. Se considera terminado cuando el caso de diff vacío ya no se marca silenciosamente de forma automática como merged y existe cobertura para el escenario de stack reportado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
When using gh stack, it's possible to end up with a PR whose head branch has no commits beyond its base branch (i.e., an empty diff). When this happens, GitHub automatically marks that PR as "merged" as soon as it is synchronized (e.g., via gh stack submit pushing to origin), even though no actual merge was intended.
Repro scenario
Given a stack main <- branch A <- branch B:
- Commit to
A(intending it forB). - Check out
BfromAwithout making a new commit. - Push
Band open PRs forAandB. - Run
gh stack initto adopt the two branches into a stack. - Run
gh stack submit.
Because B's branch contains no commits beyond A, GitHub treats the PR for B as having "no diff" against its base, and the subsequent push/synchronize causes GitHub to automatically mark PR B as merged into A — even though the user never intended or triggered a merge.
Observed example
After running gh stack init followed by gh stack submit, PR #15 (branch B) was unexpectedly shown as merged into PR #14 (branch A), because branch B had no unique commits relative to branch A.
Request
gh stack should proactively detect this situation (a branch in the stack with no commits ahead of its base) and warn or prevent the user from creating/submitting a PR in that state, rather than letting it silently get auto-merged by GitHub.
Context
Reported by @jschnapper, triaged by @skarim, in a Slack thread.
Created from a Slack conversation.
- Lenguaje dominante
- Go
- Estrellas
- 1.5k
- Forks
- 73
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 7
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de github/gh-stack
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
feature request topic: cli - general
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
feature request topic: auto-merge
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
bug topic: docs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
Todos los issues de github/gh-stack
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
NVIDIA/gpu-operator#2955 ·
-
agentic-workflows
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Broadcast Documentation Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
kovidgoyal/kitty#10516 ·
-
CVE-2024-24786 CPE mismatch Abiertobug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
cisagov/vulnrichment#337 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100