Можно ли превратить общедоступное GitHub-репо в корпоративный репозиторий?
Здесь есть публичное репо для Quick Framework. Я хотел бы иметь возможность раскошелиться на хранилище github частного предприятия. Форкинг позволит всем веткам остаться.
альтернативой было бы клонировать репо и запустить только одну ветку на предприятии, но тогда я потерял бы не все ветки от источника / оригинала.
Обновление: я закончил толкать все свои филиалы в Git предприятия. если вы просто выполните команду git push yourRemoteName myNewBranch, то он будет вставлять код в эту ветку корпоративного git при создании этой ветки в корпоративном github.
1 ответ
Это невозможно, поскольку ваша установка Enterprise GitHub отделена от общедоступной, поэтому две системы не могут отслеживать отношения ветвей друг друга.
Лучшее, что вы можете сделать, это точно так, как вы описали: клонировать репозиторий, затем перенести его в вашу установку GHE, и тогда вы потеряете отношения ветвления между репозиториями.
Другой вариант заключается в том, чтобы держать форк в публичном репозитории GH - возможно, синхронизировать его (вручную или cronjob) с репозиторием GHE. Тогда у вас будет два экземпляра вашего репо, и публичный будет сохранять отношения ветвления с исходным репо.
В зависимости от того, почему вам нужно поставить это на GHE, это может или не может работать. Если вы делаете личные вклады, это явно не сработает - ваши личные вклады больше не будут частными. Если вы хотите это в GHE из-за некоторой корпоративной политики, согласно которой все проекты с открытым исходным кодом, используемые внутри, хранятся в GHE, или что-то подобное, то это будет работать, с дополнительными административными издержками, связанными с синхронизацией репо в двух местах.
Хотя невозможно перейти с общедоступного GitHub непосредственно на вашу установку Enterprise, вы можете разветвить его на общедоступном GitHub, а затем отразить этот разветвленный репозиторий в вашей корпоративной установке.
меры
Создайте пустой репозиторий на вашем предприятии GitHub:
curl https://github.yourenterprise.com/api/v3/user/repos \ -u "yourUsername" \ -d "{\" name \ ": \" what-repository\", \"private\": true }"
Создайте голого клона своей вилки
git clone --bare https://github.com/publicGitHubUser/forked-repository.git
Измените каталоги, чтобы вы оказались внутри папки с открытыми клонами:
cd./whwhat-repository.git/
Отправьте репозиторий с флагом "--mirror" на ваш корпоративный GitHub
git push --mirror https://github.yourenterprise.com/enterpriseGitHubUser/forked-repository.git
Дополнительная информация
Если вы используете GitHub Enterprise, вы автоматически получаете доступ к GitHub Enterprise Cloud, то есть https://github.com/enterprises/mycompany, с тем же количеством лицензий. Это может быть связано с SAML с вашей внутренней Active Directory. Затем вы можете просто разветвить его в GitHub, но при этом оставить его под контролем вашей компании.
К сожалению, вам все равно придется зеркально клонировать его, если он вам действительно нужен на вашем внутреннем экземпляре. Однако, поскольку теперь вы контролируете оба конца, вы сможете использовать GitHub Actions (или Apps) для более интеллектуальной их синхронизации.