threads / discuss / 15933

Git hooks are not called over HTTP

Subject: Git hooks are not called over HTTP

## tl;dr

3 messages between Oct 17, 2008 and Oct 17, 2008.

replies: 2people: 3as markdown or json

KwangYul Seo· Oct 17, 2008, 06:23 UTC · lore
Hi,

I have setup a git repository with post-receive and post-update enabled. I configured hooks.envelopesender and hooks.mailinglist. I confirmed that it works fine with push from local repositories. However, hooks are never called when push is done over HTTP. I added 'echo abc' to post-receive to see if it is called or not. With local push, abc was printed, but with HTTP push it was not printed. What is the problem here?

BTW, I use Ubuntu hardy.

Regards, Kwang Yul Seo

Jakub Narebski· Oct 17, 2008, 09:22 UTC · re: KwangYul Seo · lore

Re: Git hooks are not called over HTTP

"KwangYul Seo" <kwangyul.seo@gmail.com> writes:
Show 7 quoted lines
> I have setup a git repository with post-receive and post-update
> enabled. I configured hooks.envelopesender and hooks.mailinglist. I
> confirmed that it works fine with push from local repositories.
> However, hooks are never called when push is done over HTTP. I added
> 'echo abc' to post-receive to see if it is called or not. With local
> push, abc was printed, but with HTTP push it was not printed. What is
> the problem here?

The "problem" here (which is very much the way HTTP protocol was designed) is that it isn't _git_ that updates repository on remote side on push (which knows about hooks), but _web server_ via WebDAV. And web server knows nothing about hooks.

Perhaps that would get improved when "smart" HTTP protocol gets implemented (currently in the phase of design, I think just after designing protocol).

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Shawn O. Pearce· Oct 17, 2008, 14:11 UTC · re: Jakub Narebski · lore

Re: Git hooks are not called over HTTP

Jakub Narebski <jnareb@gmail.com> wrote:
Show 10 quoted lines
> "KwangYul Seo" <kwangyul.seo@gmail.com> writes:
> 
> > I have setup a git repository with post-receive and post-update
> > enabled. I configured hooks.envelopesender and hooks.mailinglist. I
> > confirmed that it works fine with push from local repositories.
> > However, hooks are never called when push is done over HTTP.
> 
> Perhaps that would get improved when "smart" HTTP protocol gets
> implemented (currently in the phase of design, I think just after
> designing protocol).

Yes. The Git-in-HTTP protocol for push basically calls for an embedding of send-pack/receive-pack's protocol into HTTP, and implementation wise will probably be invoking git-receive-pack on the web server side of the connection. So if/when that finally gets implemented we'd run hooks over HTTP, but *ONLY* if both sides support the new Git-in-HTTP protocol.

If both sides are still using WebDAV, no hooks, for the reason you cited earlier.

-- 
Shawn.

← back to recent threads