Is this not working for you? (may be a bug)
Did you set up the toy instance by creating a CI/CD project and use the GitHub Oauth?
I've logged an issue to track down the process: https://gitlab.com/gitlab-org/gitlab-ce/issues/44552
I deleted my toy repo and did it over again; it seems to be working now. Latency seems to be in the 20-30 second range for incremental pushes, which is pretty good.
Is there a way to do this for existing repos? Or do we have to delete and re-create our production repo to do this?
You can add a webhook on GitHub and have it point to our Pull Mirroring API [1], followed by manually setting up the integration to send status updates back [2].
We're looking to make this process easier, and have explored ways we might implement this in https://gitlab.com/gitlab-org/gitlab-ee/issues/5220.
[1] https://docs.gitlab.com/ee/api/projects.html#start-the-pull-...
[2] https://docs.gitlab.com/ee/user/project/integrations/github....
An update, having now tried this on a toy Gitlab/Github instance.
It looks like this still relies on Gitlab's support for mirroring an external repo, which relies on polling. This is less than awesome, because it means we're back into the (many) minutes latency range from pushing changes to seeing them appear in the mirrored repo (and therefore CI). When I did this before, we had to set up a mirror on our own machines to get this latency down into the ~1 minute range, otherwise it was unusable.
What appears to have been added was syncing the build status from CI builds back to Github. That part seems to work as intended.
There does appear to be a Gitlab API for triggering a mirror update, but I don't see an easy way to get that hooked up to Github out of the box. The CI status feature would be much more aweseome with the addition of push-based mirroring.
Edit: And the problem with mirroring manually like we did before is that there isn't a clean way to mirror pull requests (it requires manipulating web APIs, not just pushing a Git repo). So if we went back to that route, we wouldn't really get the seamless experience we've been hoping for.