Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Mid-stack PRs miss stack-aware `pull_request` triggers: PRs are created before the stack object exists

Abierto
#425 0 comentarios 5 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
github, go
Área
api, cli

Línea de trabajo

Comienza en el flujo de gh stack submit y reproduce el stack de cuatro ramas con un workflow pull_request filtrado para main. Traza cuándo se crean los PRs miembros, cuándo se registra el stack y cómo se observa el comportamiento del disparo del workflow a través de los conjuntos de checks. Se considera terminado cuando cada PR miembro recibe la ejecución de workflow esperada, incluidos los PRs intermedios del stack creados antes del registro del stack.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug topic: ci
What happened

On gh stack submit, PRs are created a few seconds before the stack object itself exists. pull_request workflows with a branches: filter are evaluated against each PR's literal base at open time, so mid-stack PRs are filtered out and never dispatched. They are not re-evaluated once the stack is registered, so they permanently show no checks.

This contradicts the documented behaviour in Optimizing CI for stacked pull requests: "A workflow configured to run on pull_request events targeting main runs for every pull request in the stack."

Reproduction
  1. In a repo with the stacks preview enabled, add a workflow with:

    on:
      pull_request:
        branches: [ "main" ]
    
  2. Create a 4-branch stack and gh stack submit.

  3. Observe CI runs only on the bottom PR and the topmost PR. The middle PRs get a check suite with zero runs.

Observed timeline

Stack of 4 (PRs #10–#13, stack #14, stack.base.ref = main, size: 4):

Time (UTC) Event Workflow dispatched
13:24:13 PR #10 opened (7main) yes — literal base is already main
13:24:17 PR #11 opened (87) no — check suite 85146388656, latest_check_runs_count: 0
13:24:21 PR #12 opened (98) no — check suite 85146406327, latest_check_runs_count: 0
13:24:24 PR #13 opened (109) no — first check suite, 0 runs
13:24:26 stack #14 created (GET /repos/{owner}/{repo}/stacks/14created_at)
13:24:31 second check suite on PR #13's head yes — this is the run that appears

The bottom PR runs because its base is literally main, independent of any stack awareness. The top PR runs because its dispatch landed after stack registration at 13:24:26 and got a second check suite. PRs #11 and #12 had their opened events fully processed before the stack existed, were rejected by the branches: [main] filter, and nothing re-dispatched them afterwards.

Reproduced identically on an earlier stack of 3 in the same repo: bottom PR ran, middle skipped, top ran.

Expected behavior

Every PR in the stack is evaluated against stack.base.ref, as documented — either by creating the stack before its PRs, or by re-evaluating pull_request workflow triggers for all member PRs once the stack is registered.

Actual behavior

Only PRs whose trigger evaluation happens after stack registration get stack-aware treatment. Mid-stack PRs are silently left with no checks, which is indistinguishable from "queued" and blocks merge on repos with required checks.

Not a duplicate of
  • #319 — merge refs are healthy here: refs/pull/{10,11,12,13}/merge all exist and point at current commits, and all four PRs report mergeable: true.
  • #379 — that concerns paths filters being selected from the topmost PR. This is branches filters and a registration-ordering race; the affected PRs get a check suite with zero runs rather than a workflow selected from the wrong PR.
Workaround

Remove the branches: filter from the pull_request trigger so CI runs regardless of base.

Lenguaje dominante
Go
Estrellas
1.5k
Forks
73
Merge medio
1 d 8 h
PR fusionados (30 d)
7

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de github/gh-stack

Todos los issues de github/gh-stack

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.