What happens
The blocked label exists in the repo and is used to mark PRs that depend on other PRs (e.g., stacked PRs waiting for a parent to merge). However, the label is purely cosmetic — there is no CI enforcement, so a PR with blocked can still pass all checks and be merged.
What should happen
A GitHub Actions workflow should run as a status check on pull requests and fail when the blocked label is present. The check should re-run when labels are added or removed (trigger on labeled and unlabeled events) so it clears automatically when the label is removed.
For this to actually prevent merging, the workflow's status check needs to be added as a required check in the repo's branch protection rules.
Context
This came up while creating a stacked PR (#981 on top of #861). GitHub's native stacked PR feature doesn't support fork-based workflows, so the blocked label + draft status is the current workaround for signaling merge dependencies. CI enforcement would make this safer.
What happens
The
blockedlabel exists in the repo and is used to mark PRs that depend on other PRs (e.g., stacked PRs waiting for a parent to merge). However, the label is purely cosmetic — there is no CI enforcement, so a PR withblockedcan still pass all checks and be merged.What should happen
A GitHub Actions workflow should run as a status check on pull requests and fail when the
blockedlabel is present. The check should re-run when labels are added or removed (trigger onlabeledandunlabeledevents) so it clears automatically when the label is removed.For this to actually prevent merging, the workflow's status check needs to be added as a required check in the repo's branch protection rules.
Context
This came up while creating a stacked PR (#981 on top of #861). GitHub's native stacked PR feature doesn't support fork-based workflows, so the
blockedlabel + draft status is the current workaround for signaling merge dependencies. CI enforcement would make this safer.