Is there a way for github to completely reject a commit
That sounds like a server-side hook. That isn't possible: a GitHub webhook can register a push event, not reject a push.
That leaves you with a client side hook (which needs to be deployed on all client, and can be bypassed anyway)
A pre-commit hook is more sensible in that case (no need to wait for the push to discover a commit with a wrong content).
You also have then option of .gitattributes
(see "Mind the End of Your Line") in order to instruct git to always replace CRLF by LF (*.txt eol=lf
): see .gitattributes
End-of-line conversion.
That is more robust than a client-side hook.