Pull based Mirroring from GitHub for CI is no longer mirrored

Somewhere between 2020-03-26 18:07 and 2020-03-27 10:59 our pull based repository mirror stopped working. The webhook from GitHub now gets this in return

When I check Settings -> Repository under Mirroring repositories the previous mirror is no longer there.

But worse than that, I can’t even add a new one since Mirror direction is locked to “Push.”

We’re only using GitLab for CI, using our own runners, and I’m not sure exactly what we need to do to resolve this. It seems like something changed on the GitLab side since we use GitLab only as a read-only repository. But I really am unsure.

We just need to find out how to get the mirror back in, so we can get our builds going again. Unfortunately this is affecting our production since both builds and deploys occur here.

This is for GitLab.com


We have encountered the same thing as well. The response from webhook is sending back a 400 and there is no mirroring. The mirror direction is also locked to “Push”.

1 Like

Here is the same, three days ago, I faced the same issue and after few hours it disappeared and the Github integration as well as pull mirroring came back. Two days after that exactly at 2020-03-28 05:43:42 again the same issue and the Github webhook thrown below error message:
{“message”:“The project is not mirrored”}
I tried to define a mirrored repository again but only push mirror was there and pull was gone as well as Github integration.
We stuck in a middle of so many pull requests and our CICD is not working to merge them. Please someone let us know what’s going on here?

Seems like this must have been changed to a paid feature. I haven’t seen any notifications about this, some sort of notice on the repository and/or an email would have been real useful here

I upgraded our account and all the builds just started running again. Since we don’t use the CI minutes. (we have our own runners) though the upgrade seems a bit steep.

1 Like

Same here.

We use Gitlab as external CI (we’re required to use Bitbucket for now) and use our own runners.

Upgrading the subscription only for pull mirroring seems a bit much.

Wow that sucks. This seems like a really crap time to do something like this without any warning. Don’t we all have enough to worry about right now.

1 Like

I changed to bronze plan and now it is working only for one user which is mine, I wanted to know how should I add more seats, in a way, other users also able to run the PIPELINE by themselves from github?

I thought we could get away from the Bronze edition, since that is what repository mirroring is now on. But it looks like external CI/CD is on the Silver edition.

:frowning: We’re going downhill fast here. Not sure on this next upgrade, it’s 4x the cost of Bronze and the only thing we’re wanting to get is the build status annotated on the pull request in GitHub.

However, for public record, it seems this is documented on their solutions page.


sorry that this caused troubles for you. The announcement and rationale has been shared in this blog post:

The repository mirroring is part of this feature as far as I can see. Still, if it is only for the technical parts of mirroring a repository, you might find this topic useful:

Kind regards,

The referenced above “The free period of CI/CD for GitHub is ending soon” blog post says:

The ability to mirror private external repositories and run CI/CD on them will no longer be available as of March 22, 2020, unless the repositories have been made public or you have upgraded to an eligible GitLab plan.

However, the feature does not seem to be working for public repos anymore!

Hi @ivailop,

since you are new to the topic, can you please share your error message too? Best with a screenshot of your settings and the error you get.

I’ve just checked it with a test account and a public repository on GitLab.com, this works like a charm with selecting Pull and adding the entry. This gets greyed out when adding a second option, if you already have a setting as this would cause conflicts.


For the public https://github.com/s2technologies/testspace.test.ci GitHub project, using “CI/CD for external repos”, I created a mirror https://gitlab.com/s2technologies/testspace.test.ci GitLab project.

Any webhook event (even the very first “ping” one) on the GitHub repo side fails with 400 {"message":"The project is not mirrored"}

One thing to notice, the created GitLab project appears private with no option (it is grayed out) to manually change it to public.

I just notice that our https://gitlab.com/s2technologies GitLab group, where the mirror was created, was actually private! After changing it to public and also changing the mirror https://gitlab.com/s2technologies/testspace.test.ci to be public now in the UI it appears to be fine (it says miror, at least visually on the GitLab side)…
However, the GitHub webhook events now started failing with 500 {"message":"500 Internal Server Error"}


can you share the request the GitHub webhook is sending? There must be something strange in it causing this behaviour. I had asked our engineers, they couldn’t reproduce it thus far.


One more thing to point… Accessing Setting/Repository of the mirror https://gitlab.com/s2technologies/testspace.test.ci GitLab repo results in 500 error page!

I guess, switching from private to public must have left the GitLab mirror repo in a bad state which results 500 errors


ok then you probably have hit a bug with a strange repository state which affects your repository on GitLab.com.

Can you please open a bug report at https://gitlab.com/gitlab-com/support-forum/-/issues including this specific finding and all the logs and timestamps to reproduce/analyse it ?


Sure, here it the issue - https://gitlab.com/gitlab-com/support-forum/-/issues/5339

1 Like

OK so we are using bitbucket for our repo (because that is how it was when I got here so it is not an option to host our repo on gitlab) but we use gitlab for our CI for the iOS app portion of that repo only. We are using this method https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/bitbucket_integration.html

What plan do we need now to get this back?

We are in the same boat. So what plan did you end up needing? We host our repo on bit bucket and use this approach. https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/bitbucket_integration.html I understand that they posted about this some time ago (somewhere on the internet), but I never received any information about it and I don’t go checking gitlab’s page every day. So it was a bit of a surprise when it just stopped working. Sigh.

1 Like

Wow! I break my production because this sudden change. I didn’t get notice about it.