Repository navigation
fix: A green Unity package release pull request is merged even when GitHub lists its finished checks late - #3160
Conversation
…itHub lists its finished checks late The release-please path runs merge-package-release-pr with --no-wait right after the dispatch step has watched the release PR checks to completion. GitHub's per-workflow run listing (gh run list --workflow --branch) can keep showing such a run as missing or unfinished for tens of seconds: on 2026-10-05 a build-and-test run completed at 12:41:44, the merge step read the listing at 12:42:00 and saw nothing for the head, and the same query returned the completed run by 12:42:39. The pull request was left draft, and because every release-please run moves the release branch head, a re-run hit the same window again. Add --checks-grace-seconds: under --no-wait, a pass that is waiting only on the head's check runs is re-read until the grace runs out, then the pull request is left draft as before. A stale pin still decides in one pass, since the stamp takes far longer than any grace. release-please.yml passes 120 seconds.
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 🧰 Additional context used📚 Code guidelines (2)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (5)
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe package-release merge command now supports a configurable grace period for unfinished checks in no-wait mode. The release workflow sets the period to 120 seconds, and the release instructions describe the check re-read behavior. ChangesPackage Release PR Check Grace
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant ReleaseWorkflow
participant MergeCommand as merge-package-release-pr
participant GitHubPRChecks
ReleaseWorkflow->>MergeCommand: invoke with 120-second grace
MergeCommand->>GitHubPRChecks: list package PR and check status
GitHubPRChecks-->>MergeCommand: return unfinished checks
MergeCommand->>GitHubPRChecks: re-read checks during grace
GitHubPRChecks-->>MergeCommand: return updated check status
MergeCommand->>GitHubPRChecks: merge when checks pass
Merge Risk: ⚪ Minimal · up to The release workflow can recheck unfinished package-release checks for up to two minutes. No actionable merge-blocking issue is identified; normal checks remain appropriate before merging. Security Architecture ReviewSecurity architecture risk: ⚪ Minimal · up to The grace period changes when automation rechecks a release PR, not what it must verify before merging. Exact-head checks, dispatcher-pin validation and merge-time head matching remain enforced. No material security risk was found introduced or worsened by this change. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 75.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 12 functions across 3 files. (2 skipped: 2 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
merge-package-release-prgains--checks-grace-seconds. Under--no-wait, a pass that is waiting only on the head's check runs is re-read until the grace runs out; then the pull request is left draft as before.release-please.ymlpasses--checks-grace-seconds 120;docs/dispatcher-pin-release-order.mdrecords why.Why
The release-please path runs the merge with
--no-waitright after the dispatch step has watched the release PR checks to completion. GitHub's per-workflow run listing (gh run list --workflow --branch) can lag that completion: today abuild-and-test.ymlrun finished at 12:41:44, the merge step queried at 12:42:00 and found nothing finished for the head, and the same query returned the completed run by 12:42:39. Because every release-please run moves the release branch head, re-running it hits the same window again, so the 3.11.5 package release PR stayed draft.Verification
scripts/check-go-cli.sh,scripts/test-release-please-config.sh,scripts/test-dispatcher-publish-workflow.shpass locally.