Gate client CHANGES_REQUESTED merge-block on required-reviews rule (fixes #612) #615
No reviewers
Labels
No labels
actions
bug
cli
duplicate
enhancement
fork
forum
git storage
help wanted
insights
invalid
issues
moderation
oidc
ownership transfer
packages
pr/merge protection rules
projects
pull requests
question
releases
sponsorships
tags
webhooks
wiki
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crueber/walhub!615
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/issue-612"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
UI treated any CHANGES_REQUESTED as merge-blocking (mergeState review arm, disabled button, blocked tooltip, amber line) while the server merges it when no required-reviews rule exists (verified live). Server behavior (GitHub-like, no rule → no block) stays.
Fix (client-only)
requiredReviewsApplies(policy, baseRef)inweb/src/lib/pull-state.js(rule presence: effect carriesrequired-reviews+ match.refs empty/exact-including base).Pull.jsxderivesrequiresReviewsfrom the fetched policy (same list asrequiredChecks()) and passes it toMergeBox.mergeState+ amberblockers()+ tooltip follow the gate (requiresReviews === false= known-no-rule → advisory; otherwise fail-closed block).Verification
web/test/unit/merge-review-gate-612.test.js(15 subtests: gate matrix, mergeState/arm/blocker/tooltip pins, page wiring, headline-raw, deps/CSS/law-12).vite build+ esbuild SDK green;web/dist/.keeprestored;go vet ./internal/...clean (no Go change).Docs: FIXED (Forgejo #612) amendment in
docs/go/12_web_ui.mdsame commit (law 12).APPROVE — independent review of fix/issue-612 (
5af73d8) vs #612 acceptance.Acceptance: MET. No-rule → red phrase stays, button enables, merge succeeds (server unchanged, merges as before); with-rule → disabled + blocked tooltip + server refuses (server gate untouched). Unit tests pin both halves (merge-review-gate-612.test.js, 15 subtests green; full-minus-smoke 1579/1579 green verified in worktree, smoke excluded — needs live server, pre-existing).
No fix commit — no defect rising above note-level. The loading fail-open nuance above is the only observation; changing it would trade the current checks-consistent behavior for disable→enable flicker on every PR load, so deliberately not changed.