Why a Release Gate Belongs Inside the GitHub Pull Request
Merge decisions already happen on the PR. Verification evidence should arrive in the same place — and fail closed when it does not complete.
By Endia Engineering · 371 words
The failure
A browser test ran somewhere. The result lived in a dashboard nobody opened. The PR looked green enough. Merge happened.
The missing piece was not “more tests.” It was putting the release decision in the same surface where humans already decide to merge.
Developers already decide in GitHub
Pull requests concentrate:
- code review
- CI conclusions
- branch protection rules
- the merge button
GitHub’s documentation on status checks and protected branches describes how required checks can block merge until listed checks succeed.
If critical-flow verification exists but is not a required check, it is optional theater.
What a release gate should do on the PR
- Attach to the deployment that matches the PR (preview URL).
- Report a clear conclusion: pass or fail.
- Link to evidence for the failed step.
- Participate in branch protection as a required check when the team chooses.
Endia’s Vercel + GitHub path can report preview verification as a check on the pull request for mapped projects (preview deployment docs). That is shipped wiring — not a claim that every repository has it configured.
Fail closed when verification does not complete
A dangerous pattern:
The check never finished → treat as green.
A safer pattern:
The check never finished → treat as not mergeable.
Incomplete verification is not the same as safe to merge. Infrastructure errors, timeouts, and missing results should keep the change blocked or pending — never invent a successful browser outcome.
What this is not
- Not a claim that GitHub is incomplete or inferior. Endia depends on GitHub.
- Not a claim that every team must block merge on every E2E suite. Policy is a choice; the primitive must support the choice.
- Not a replacement for code review.
Checklist
- [ ] Identify which check represents critical-flow verification.
- [ ] Decide whether it is required under branch protection.
- [ ] Confirm failed or incomplete verification cannot silently read as success.
- [ ] Ensure the check links to evidence a human can inspect in under a minute.
Related
Sources
- GitHub Docs: About status checks · checked 2026-09-24
- GitHub Docs: About protected branches · checked 2026-09-24
- Endia preview deployment docs · checked 2026-09-24
Protect a critical flow
Record the journey you cannot afford to break. Run it on every Vercel preview.