A quality gate turns a set of standards into an enforced decision. It runs in CI (or a pre-push hook), evaluates the change against rules — no new error-severity findings, no hardcoded secrets, coverage not regressing, no failing tests — and returns a single verdict: pass and the merge proceeds, fail and it is blocked.
The value is that it removes judgement from the hot path. Without a gate, 'we should fix that before shipping' depends on whoever is reviewing noticing and caring at 5pm on a Friday. With a gate, the standard is applied identically to every change, so quality stops eroding one rushed merge at a time.
A good gate is strict about what blocks (real, high-confidence, error-severity problems) and informative about the rest (warnings that surface without failing the build), so it protects the codebase without becoming the thing developers learn to bypass.