我在一个开源项目上工作。我们将生产配置文件保存在一个单独的git存储库中,仅供我们团队的一些成员使用。这个仓库是我们大型项目的一个子模块,它允许人们抓住并编译项目,而不会看到我们的产品信誉。
问题是Hudson试图拉下子模块,而Hudson用户对该repo没有拉取权限。
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)
是否有一种良好的“git”方式,或者我们是否需要重新考虑我们的策略,以保持生产凭据远离恶人?
答案 0 :(得分:1)
如果那个秘密仓库是一个更大的仓库的子模块,那么...... Hudson应该不试图从那个更大的仓库中撤出;)
它应该从“另一个更大的回购”中拉出来,与第一个回复相同,但是是否存在该子模块。
在以下情况下很容易做到:
当存在这样的父存储库(内容仅限于两个子模块)时,很容易复制这样的父存储库以获得仅包含一个子模块的存储库(“更大”项目“),没有其他(”秘密回购“) 这将是第二个父母回购哈德森能够从中拉出来的。