When implementing CI checks that can block pull request merges, always provide clear override mechanisms for exceptional cases. Hard-failing CI checks should be strong signals to developers, but teams need escape hatches when legitimate exceptions arise.
Design your CI workflows to fail meaningfully while maintaining flexibility:
# Example: PR size check with override capability
- name: Check PR size
run: |
if [ $TOTAL_CHANGES -gt 1000 ]; then
echo "PR is too large ($TOTAL_CHANGES lines). Please split into smaller PRs."
echo "To override, add 'override-size-check' label and provide justification."
exit 1
fi
Key considerations:
This approach provides strong developer guidance while acknowledging that exceptional cases requiring large PRs will occasionally arise and need a path forward.
Enter the URL of a public GitHub repository