Finding
PR #555 introduces auto-merge on lgtm label via on-pr-lgtm job in the lifecycle workflow. The job runs gh pr merge --auto when the lgtm label is applied to any PR.
Critical gap: There is no guard against accidentally auto-merging PRs that have hold, status/hold, or do-not-merge labels. If a maintainer adds lgtm to a held PR (e.g. "looks good but not yet"), the PR enters the merge queue immediately.
Additionally:
- The
merge_group trigger added to unit-tests.yml has no dry-run validation
- There's no test confirming the lifecycle workflow's label conditions behave correctly
- No documentation of the expected label interaction matrix (lgtm + hold = ?)
Recommendation
- Add a label guard to the
on-pr-lgtm job:
- name: Check for hold labels
run: |
LABELS=$(gh pr view "$NUMBER" --repo "$REPO" --json labels -q '.labels[].name')
for block in "do-not-merge" "status/hold"; do
echo "$LABELS" | grep -q "$block" && { echo "Blocked by $block"; exit 0; }
done
- Add a workflow validation test (can use
act or a simple YAML schema check)
- Document the label interaction matrix in CONTRIBUTING or AGENTS.md
Priority
- Impact: high (could auto-merge held/blocked PRs)
- Effort: low (single conditional check in workflow)
Filed by quality agent (hold-gated mode)
Common · issue pipeline
▶ triage needs kind/ + area/ then /approve
· discussing —
· queued —
· claimed —
· done —
area: — priority: —
maintainer: set kind/ + area/ labels, then comment /approve
reporter: answer questions; add repro steps if a bug
Finding
PR #555 introduces auto-merge on
lgtmlabel viaon-pr-lgtmjob in the lifecycle workflow. The job runsgh pr merge --autowhen thelgtmlabel is applied to any PR.Critical gap: There is no guard against accidentally auto-merging PRs that have
hold,status/hold, ordo-not-mergelabels. If a maintainer addslgtmto a held PR (e.g. "looks good but not yet"), the PR enters the merge queue immediately.Additionally:
merge_grouptrigger added tounit-tests.ymlhas no dry-run validationRecommendation
on-pr-lgtmjob:actor a simple YAML schema check)Priority
Filed by quality agent (hold-gated mode)
Common · issue pipeline
area: — priority: —
maintainer: set kind/ + area/ labels, then comment /approve
reporter: answer questions; add repro steps if a bug