Есть ли способ обойти клонирование подмодуля git? - PullRequest
4 голосов
/ 21 июля 2011

Я работаю над проектом с открытым исходным кодом. Мы храним наши производственные конфигурационные файлы в отдельном репозитории git, доступном только нескольким членам нашей команды. Этот репозиторий является подмодулем нашего более крупного проекта и позволяет людям собирать и компилировать проект, не видя наших кредитов.

Проблема заключается в том, что Хадсон пытается снять субмодуль, а у пользователя Хадсона нет прав доступа к этому репо.

hudson.plugins.git.GitException: Error performing command: git submodule update
Command "git submodule update" returned status code 1: Initialized empty Git repository in <http://athenadev.fracturedatlas.org:5904/job/ATHENA/ws/assembly/.git/>
ERROR: Permission to fracturedatlas/assembly.git denied to fracturedatlas/artful.ly.
fatal: The remote end hung up unexpectedly
Clone of 'git@github.com:fracturedatlas/assembly.git' into submodule path 'assembly' failed

       at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:691)

Есть ли хороший "мерзавец" для решения этой проблемы или нам нужно переосмыслить нашу стратегию защиты учетных данных от злодеев?

1 Ответ

1 голос
/ 21 июля 2011

Если этот секретный репо является подмодулем более крупного репо, тогда ... Хадсон должен не попытаться вытащить из этого более крупного репо;)

Он должен вытащить из "другого более крупного репо"репо ", что идентично первому, , но для наличия этого подмодуля.

Это легко сделать, когда:

  • родительский репопустые и объявляют только подмодули (один для «большего проекта», один для «секретного репо»)
  • «больший проект» включает в себя символическую ссылку на секретное репо (таким образом, вам не нужнообъявить субмодуль секретного репо непосредственно в рамках более крупного проекта, вы можете объявить его в квазипустом родительском репо)

Когда существует такой родительский репо (с контентом, ограниченным только двумя субмодулями), онлегко воспроизвести такой родительский репо, чтобы получить один, включающий только один подмодуль («большой проект»), без другого («секретное репо»).
И это будетчто второй родитель репо Хадсон будетЛе, чтобы вытащить из.

...