3 ms·
I would strongly advise you to make the mirroring system completely hidden. It's weird to me that the UI even exposes this. First, have people register their o
by atombender 8y ago
I would strongly advise you to make the mirroring system completely hidden. It's weird to me that the UI even exposes this.
First, have people register their origin repos. In fact, don't let people register individual repos; just their accounts or organizations. So instead of "Source Repositories", it's just a list of repos that GCP has access to.
Then, behind the scenes, mirror everything you have access to. All projects that you can read. Keep it internally. If you offer a UI to browse code and so on, pretend the code is remote. All references need to show https://github.com/someorg/myrepo.git https://github.com/someorg/myrepo.git as the remote, for example. Pretend your mirror doesn't exist.
Only add Github hooks for projects where real-time syncing is needed, i.e. build triggers.
Then, use Github hooks like you usually do, but have it fall back to pull-based polling when hooks aren't working (something I bet you guys can detect simply by noticing that hook activity for all projects is below average!). Anything that needs a build trigger could also have a manual button that checks the upstream.
Consider the developer's perspective. I already have my code on GH. I don't want to also store it in GCP. Why should I? It's right there on GH for any API consumer to read. Keeping it on GCP is just more work.
Being able to build with GCB without involving the indirection of a mirror would be even better.
- dragonwriter 8y ago> Consider the developer's perspective. I already have my code on GH. What if you don't? The fact that Google needs to acknowledge that CSR isn't where existing projects are primarily hosted (and thus needs to accommodate projects primarily hosted elsewhere) doesn't mean they shouldn't try to be a primary host.
- atombender 8y agoThat's fine. I'm only talking about that particular requirement that you use SR/CSR in order to use services like GCB. Obviously you have to point GCB at something. Today, you can only point GCB at SR/CSR. If you go to GCB and try to add a trigger, and select Github, it will go and set up a mirror on SR/CSR for you.