# git pre-push hook to restrict master branch push !!!

4 messages from 2012-06-11 to 2012-06-20. Participants: J. Bakshi, Sitaram Chamarty.
Thread: https://gitlist.dev/t/30765

## J. Bakshi, 2012-06-11 11:18

Subject: git pre-push hook to restrict master branch push !!!
Message-ID: <20120611164851.0e4db9f0@shiva.selfip.org>
URL: https://gitlist.dev/e/20120611164851.0e4db9f0%40shiva.selfip.org

```
Hello list,

I have a central server where git repos are located and based on http base push/pull.
authentication is done by a text based password file, generated by htpasswd.

I am searching for a server side hook (pre-push) which can prevent all push to master,
except few users found at that password file generated by htpasswd. Is there any such hook
available ? Some suggest to use gitolite, but it also based on the hooks to do the same.

Thanks

```

## Sitaram Chamarty, 2012-06-11 12:10

Subject: Re: git pre-push hook to restrict master branch push !!!
Message-ID: <CAMK1S_jrahLs_86hksb6_pXAxWnrCQ=myfD-mLTpLFjnS3c0kA@mail.gmail.com>
URL: https://gitlist.dev/e/CAMK1S_jrahLs_86hksb6_pXAxWnrCQ%3DmyfD-mLTpLFjnS3c0kA%40mail.gmail.com
In-Reply-To: <20120611164851.0e4db9f0@shiva.selfip.org>

```
On Mon, Jun 11, 2012 at 4:48 PM, J. Bakshi
<joydeep.bakshi@infoservices.in> wrote:
> Hello list,
>
> I have a central server where git repos are located and based on http base push/pull.
> authentication is done by a text based password file, generated by htpasswd.
>
> I am searching for a server side hook (pre-push) which can prevent all push to master,
> except few users found at that password file generated by htpasswd. Is there any such hook
> available ? Some suggest to use gitolite, but it also based on the hooks to do the same.

If you don't want to use gitolite, you can roll  your own update hook.
 It can be as simple as

  - check $REMOTE_USER to see if the name is in the "allowed" list
(your choice how you want to maintain that list).  If allowed, 'exit
0".
  - otherwise check $1 (argument 1) to see if it is
"refs/heads/master".  If it is, "exit 1".

How difficult is that?

```

## J. Bakshi, 2012-06-11 12:17

Subject: Re: git pre-push hook to restrict master branch push !!!
Message-ID: <20120611174757.2f0bdd83@shiva.selfip.org>
URL: https://gitlist.dev/e/20120611174757.2f0bdd83%40shiva.selfip.org
In-Reply-To: <CAMK1S_jrahLs_86hksb6_pXAxWnrCQ=myfD-mLTpLFjnS3c0kA@mail.gmail.com>

```
On Mon, 11 Jun 2012 17:40:37 +0530
Sitaram Chamarty <sitaramc@gmail.com> wrote:

> On Mon, Jun 11, 2012 at 4:48 PM, J. Bakshi
> <joydeep.bakshi@infoservices.in> wrote:
> > Hello list,
> >
> > I have a central server where git repos are located and based on http base push/pull.
> > authentication is done by a text based password file, generated by htpasswd.
> >
> > I am searching for a server side hook (pre-push) which can prevent all push to master,
> > except few users found at that password file generated by htpasswd. Is there any such hook
> > available ? Some suggest to use gitolite, but it also based on the hooks to do the same.
> 
> If you don't want to use gitolite, you can roll  your own update hook.
>  It can be as simple as
> 
>   - check $REMOTE_USER to see if the name is in the "allowed" list
> (your choice how you want to maintain that list).  If allowed, 'exit
> 0".
>   - otherwise check $1 (argument 1) to see if it is
> "refs/heads/master".  If it is, "exit 1".
> 
> How difficult is that?

Thanks for the clue. I'm not familiar with the hook programming.
I'll check further with the clues you have given.

-- with regards.

```

## J. Bakshi, 2012-06-20 12:39

Subject: Re: git pre-push hook to restrict master branch push !!!
Message-ID: <20120620180947.755a96ba@shiva.selfip.org>
URL: https://gitlist.dev/e/20120620180947.755a96ba%40shiva.selfip.org
In-Reply-To: <20120611174757.2f0bdd83@shiva.selfip.org>

```
On Mon, 11 Jun 2012 17:47:57 +0530
"J. Bakshi" <joydeep.bakshi@infoservices.in> wrote:

> On Mon, 11 Jun 2012 17:40:37 +0530
> Sitaram Chamarty <sitaramc@gmail.com> wrote:
> 
> > On Mon, Jun 11, 2012 at 4:48 PM, J. Bakshi
> > <joydeep.bakshi@infoservices.in> wrote:
> > > Hello list,
> > >
> > > I have a central server where git repos are located and based on http base push/pull.
> > > authentication is done by a text based password file, generated by htpasswd.
> > >
> > > I am searching for a server side hook (pre-push) which can prevent all push to master,
> > > except few users found at that password file generated by htpasswd. Is there any such hook
> > > available ? Some suggest to use gitolite, but it also based on the hooks to do the same.
> > 
> > If you don't want to use gitolite, you can roll  your own update hook.
> >  It can be as simple as
> > 
> >   - check $REMOTE_USER to see if the name is in the "allowed" list
> > (your choice how you want to maintain that list).  If allowed, 'exit
> > 0".
> >   - otherwise check $1 (argument 1) to see if it is
> > "refs/heads/master".  If it is, "exit 1".
> > 
> > How difficult is that?
> 
> Thanks for the clue. I'm not familiar with the hook programming.
> I'll check further with the clues you have given.
> 
> -- with regards.
> --


The refs/heads/master checking is fine. Can I placed this checking
in my httpd.conf file to check user against a htpasswd file ?

Thanks

```
