Page MenuHomePhabricator

Allow repository mirrors even if the repository is hosted elsewhere.
ClosedPublic

Authored by brechtvl on Nov 23 2013, 5:33 AM.
Tags
None
Referenced Files
F14032858: D7637.id18252.diff
Sat, Nov 9, 4:00 PM
F13995826: D7637.id17245.diff
Wed, Oct 23, 3:54 PM
F13995022: D7637.diff
Wed, Oct 23, 10:08 AM
F13992319: D7637.id.diff
Tue, Oct 22, 3:46 PM
F13990238: D7637.diff
Tue, Oct 22, 2:09 AM
F13977939: D7637.id18252.diff
Fri, Oct 18, 8:43 PM
F13962835: D7637.id18252.diff
Tue, Oct 15, 12:34 PM
Unknown Object (File)
Oct 7 2024, 1:00 PM

Details

Summary

I'm not sure if this is desired functionality, but we happen to need
mirroring of our repository which is not hosted by phabricator, and as far as
I can tell the mirroring code does not depend on the hosting code.

Test Plan

Setup mirror with SSH credentials to github, pushed changes to
elsewhere hosted repository, commits got mirrored to github.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

I'm tentaively OK with this but I'd like to have more than, like, 12 hours of production use of mirrors before we pursue it. Are you okay with holding this out of the upstream for a week or two so we can make sure stuff is stable?

My biggest fear here is that someone is going to misconfigure things and mirror an empty repository on top of a full one or something like that. It shouldn't really be possible to do any damage (e.g., we don't --force push right now) but users have proven very creative in the past. Limiting the number of cases where mirroring is available makes me more confident I can react quickly if issues do arise.

The mirroring UI is also really bad right now (e.g., no display of mirror status); I pushed it forward in a pretty rough state since it blocked self-hosting Phabricator itself, but I'd like to pay down some of the product debt there before expanding things.

I don't see any purely technical barriers to implementing this for non-hosted repositories either, though.

(I'm also not aware of anything which makes running this patch locally dangerous.)

I'm absolutely fine with holding this out, it's a trivial change to have in our own tweaked phabricator install.

Cool, sounds good. If you manage to come up with a configuration that wipes out repositories, let me know. :)

This has had some time to not explode, and our ability to debug/diagnose issues any issues which do arise is at least slightly better now (see T4338) so I'm comfortable pulling this now. It would still be nice to improve the UI in the future, but I don't think there's any burning urgency on that. Thanks!