Reject push by failed build?

I have configured a Runner using Shell as an executor for CI test. The version of GitLab I am currently using is the GitLab Community Edition 8.3.2.

I would like to implement a simple function that for every push, a build is run and if it failed, the push will be rejected. I am just wondering whether GitLab supports this kind of function.

I know that on every push to a Git repository, the Runner will automagically start the pipeline. I would like to also reject the push itself by a failed build. I was trying to find answers on Google or other posts here but it seems that nobody is interested in implementing this.

It would be very nice if anyone could help me with this by some refs/similar posts/etc. Thanks in advance.