unstack shows a generic/incorrect error instead of the real API rejection reason
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 67/100
Piste de recherche
Commencez par reproduire gh stack unstack <number> sur une stack contenant des pull requests fusionnées, en comparant la sortie normale avec GH_DEBUG=api. Suivez la gestion des erreurs de unstack et la réponse 422 de la REST API ; c’est terminé lorsque la sortie sans débogage indique la véritable raison du rejet au lieu du message sans rapport queued-for-merge.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
gh stack unstack <number> fails on a stack containing merged PRs, but the plain (non-debug) error message names an unrelated cause. The actual server-side reason is only visible with GH_DEBUG=api.
Repro
- Create a stack with
gh stack link(orsubmit), e.g.main <- a <- b <- c <- d <- e. - Merge
aandb(via merge queue or a normal merge — doesn't matter which). - Run
gh stack unstack <number>on that stack.
Actual
⚠ Some pull requests are queued for merge or have auto-merge enabled and remain stacked on GitHub
The stack was left in place — local tracking is unchanged
I verified via gh api graphql that none of the stack's PRs had autoMergeRequest set or a mergeQueueEntry — so the stated reason doesn't match reality.
Running the identical command with GH_DEBUG=api gh stack unstack <number> shows the real HTTP exchange:
POST /repos/{owner}/{repo}/stacks/{id}/unstack
< HTTP/2.0 422 Unprocessable Entity
{
"message": "Pull requests #.. , #.. cannot be removed from this stack",
"documentation_url": "https://docs.github.com/rest/pulls/stacks#remove-pull-requests-from-a-pull-request-stack",
"status": "422"
}
Interestingly, in the GH_DEBUG=api run the CLI's own final stderr line correctly echoed this specific message (✗ Unstacking not allowed: Pull requests #.., #.. cannot be removed from this stack) — a materially different, and accurate, explanation compared to the generic message shown without debug logging.
Expected
The non-debug error message should reflect the actual REST API rejection (a stack can't be unstacked once any of its PRs have merged), not a generic, unrelated "queued for merge / auto-merge enabled" message.
Environment
gh-stack version 0.0.8, installed via gh extension install github/gh-stack.
- Langage dominant
- Go
- Étoiles
- 1.5k
- Forks
- 73
- Merge moyen
- 1 j 8 h
- PR mergées (30 j)
- 7
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de github/gh-stack
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
-
feature request topic: cli - general
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
feature request topic: auto-merge
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
bug topic: docs
Difficulté 1/5 Moins d'une heure Accessibilité débutants 68/100
Toutes les issues de github/gh-stack
Issues similaires
-
textual definition
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
geneontology/go-ontology#32653 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
-
needs design
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Priority/High ready-for-agent Severity/Major Type/Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100