GIT_PUSH_CERT* env vars and update/post-update hooks...
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".
Quoted 2 lines · Sitaram Chamarty
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.
Quoted 2 lines
[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".