# GIT_PUSH_CERT* env vars and update/post-update hooks...

2 messages from 2014-12-24 to 2014-12-29. Participants: Sitaram Chamarty, Junio C Hamano.
Thread: https://gitlist.dev/t/38243

## Sitaram Chamarty, 2014-12-24 01:57

Subject: GIT_PUSH_CERT* env vars and update/post-update hooks...
Message-ID: <549A1D8A.3020106@gmail.com>
URL: https://gitlist.dev/e/549A1D8A.3020106%40gmail.com

```
Hi git core devs,

Any chance I could persuade you to set the GIT_PUSH_CERT* environment
variables for the update (and post-update) hooks also?

Background: gitolite "takes over" the update hook [1] for authorisation
and enforcement, and I want to avoid taking over the pre-receive hook
also in order to do this check.

The post-update is not so important; gitolite doesn't use it anyway, so
if I have to take over one of them, I may as well take over
post-receive.  I just added that for consistency.

thanks
sitaram

[1]: because it's nice to *selectively* reject refs when more than one
ref is pushed at the same time; pre-receive is "all or none".

```

## Junio C Hamano, 2014-12-29 16:36

Subject: Re: GIT_PUSH_CERT* env vars and update/post-update hooks...
Message-ID: <xmqqa9261kgx.fsf@gitster.dls.corp.google.com>
URL: https://gitlist.dev/e/xmqqa9261kgx.fsf%40gitster.dls.corp.google.com
In-Reply-To: <549A1D8A.3020106@gmail.com>

```
Sitaram Chamarty <sitaramc@gmail.com> writes:

> Any chance I could persuade you to set the GIT_PUSH_CERT* environment
> variables for the update (and post-update) hooks also?

I do not think of a fundamental reason why we shouldn't give these
environment variables to update or other hooks.  It should just be
the matter of calling prepare_push_cert_sha1() on the child_process
struct used to run the hooks you want.

> [1]: because it's nice to *selectively* reject refs when more than one
> ref is pushed at the same time; pre-receive is "all or none".

It cuts both ways; inside "update", your "selective" rejection
cannot make the decision with the whole picture (you only have a
peephole into individual changes).  "post-receive" sees the whole
picture, but it has to say all-or-none.  Neither is ideal if you
truly want a useful "selective".

```
