有没有办法绕过克隆git子模块的问题?

有没有办法绕过克隆git子模块的问题?,git,hudson,jenkins,Git,Hudson,Jenkins,我从事一个开源项目。我们将生产配置文件保存在一个单独的git存储库中,只有少数团队成员可以使用。这个repo是我们更大项目的一个子模块,它允许人们在没有看到我们的产品信誉的情况下获取和编译项目 问题是哈德逊试图拉下子模块,而哈德逊用户没有该回购协议的拉下权限 hudson.plugins.git.GitException: Error performing command: git submodule update Command "git submodule update" returned

我从事一个开源项目。我们将生产配置文件保存在一个单独的git存储库中,只有少数团队成员可以使用。这个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)
hudson.plugins.git.git异常:执行命令时出错:git子模块更新
命令“git submodule update”返回状态代码1:已在中初始化空git存储库
错误:fracturedatlas/assembly.git对fracturedatlas/artful.ly的权限被拒绝。
致命:远程端意外挂起
克隆'git@github.com:fracturedatlas/assembly.git'进入子模块路径“assembly”失败
位于hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:691)

是否有一个好的“git”方法来解决这个问题,或者我们需要重新考虑我们的策略,以使生产凭证远离作恶者?

如果秘密回购是大型回购的子模块,那么。。。哈德逊不应该试图从更大的回购中撤出;)

它应该从“另一个更大的回购”中提取,该回购与第一个相同,但存在该子模块

这在以下情况下很容易做到:

  • 父repo为空,仅声明子模块(一个用于“较大项目”,一个用于“秘密repo”)
  • “较大的项目”包括一个指向机密repo的符号链接(这样,您不必直接在较大的项目中声明机密repo子模块,您可以在准空父repo中声明它)
当存在这样一个父回购(内容仅限于两个子模块)时,很容易复制这样一个父回购,以便得到一个只包含一个子模块(“较大项目”),而不包含另一个子模块(“秘密回购”)。
这将是第二个母公司回购哈德逊能够从中受益的