fix(ci): assign every release PR under separate-pull-requests (LAB-898) - #114
fix(ci): assign every release PR under separate-pull-requests (LAB-898)#11427Bslash6 wants to merge 1 commit into
Conversation
release-please-action@v4 sets outputs.pr to prs[0] only; since separate-pull-requests (LAB-888) a cycle can open one PR per package, leaving all but the first unassigned and easy to miss. Iterate outputs.prs instead, guarded on prs_created, with the JSON passed via env (not inline interpolation) and pipefail so a parse failure fails the step instead of silently assigning nothing.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 6 reviews per hour. WalkthroughThe release workflow now processes every pull request returned by the release step. It passes the JSON through an environment variable and uses Bash with ChangesRelease workflow
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This change assigns every newly created release PR while preserving no-op behavior when none are created and failing safely on malformed input or command errors. No actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Problem
release-please-action@v4setsoutputs.prtoprs[0]only. Sinceseparate-pull-requests: truelanded (#87, LAB-888), a cycle can open one release PR per package — but theAssign release PRstep only assigned the first, so the others opened unassigned and could sit unnoticed.Fix
Iterate
steps.release.outputs.prs(the JSON array of all opened PRs) andgh pr edit --add-assignee 27Bslash6each one.prs_created == 'true'— no-release cycles are a clean no-op.env:(it carries branch/title text), mirroringpr-title-lint.yml— never inline${{ }}inrun:.shell: bashfor pipefail: a jq parse failure fails the step instead of silently assigning nothing; aghfailure mid-loop also fails the step.Verification
The failure mode can't be forced on demand (needs 2+ packages bumping in one cycle), so per the ticket ACs this leans on the confirmed action contract (
pr=prs[0],prs= all, verified in the action source) plus a local parse test running the exact loop withghstubbed:prs(incl.; echo pwnedin a title)[]ghfailure mid-loopDocs gate: no docs needed — internal release automation, no user-facing surface.
Closes LAB-898
Summary by CodeRabbit