At this stage, we just can't avoid to cut the Mercurial push into several Git pushes, and we have to go explicit for that with a range of new options. A corresponding change in the Mercurial sync hook takes care of calling these pushees with the correct options.
This comes at a price: three pushes with exports etc are more costly than just one, although optimization could be done (see commits descriptions for more level).
The next level would be to call GitLab hooks directly from Mercurial, somewhat akin to what we'll do once we drop hg-git completely. In the meanwhile, this is functionally much more correct (see heptapod-tests!1 (merged) to learn about the new scenarios)