Fire GitLab post-receive hook directly from Mercurial
We are currently using a 2-step push to the inner Git repository, soon to be a 3-step (see !20 (merged)) This is suboptimal for performance, it would be better to notify GitLab of the three kinds of changes (topic branches, non-topic branches, pruning of published topic branches) directly.
It would also have these added benefits:
- possibility to pass the GitLab user along (currently all pushes seem to have been done by 'root' to GitLab)
- stop using SSH internally (less latency, probably)
- better transactionality: we could postposne it after the
hg-git
push, and even if needed postpone some of the notifications to a post-transaction hook, by storing extra info in the transaction.
All of this requires disabling the regular post-receive hook, simply by removal from the gitlab-shell
's hooks subdirectory, and re-fire it from Mercurial (if we have to support Git and Mercurial at this point, then we'd have to use some environment variable to make it a no-op, since it's the same hook for all Git repos).