gpt4 book ai didi

git - 有什么办法可以解决克隆 git 子模块的问题?

转载 作者:太空狗 更新时间:2023-10-29 13:46:17 26 4
gpt4 key购买 nike

我从事一个开源项目。我们将生产配置文件保存在一个单独的 git 存储库中,仅供我们团队的少数成员使用。这个 repo 是我们更大项目的一个子模块,它允许人们在不看到我们的 prod creds 的情况下获取和编译该项目。

问题是 Hudson 试图 pull 下子模块,而 Hudson 用户没有对该 repo 的 pull 权限。

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”方法来解决这个问题,或者我们是否需要重新考虑我们的策略,以使生产凭证远离作恶者?

最佳答案

如果那个 secret 仓库是一个更大的仓库的子模块,那么...... Hudson 应该尝试从那个更大的仓库中提取 ;)

它应该从与第一个相同的“另一个更大的 repo”中提取,但是因为该子模块的存在。

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

  • 父仓库是空的,只声明子模块(一个用于“大项目”,一个用于“ secret 仓库”)
  • “更大的项目”包含一个指向 secret 仓库的符号链接(symbolic link)(这样,您不必在更大的项目中直接声明 secret 仓库子模块,您可以在准空父仓库中声明它)<

当这样的父存储库存在时(内容仅限于两个子模块),很容易复制这样的父存储库以获得仅包含一个子模块的子模块(“更大的项目”),没有其他(“ secret 仓库”)。
这将是 Hudson 能够从中提取的第二个父 repo 协议(protocol)。

关于git - 有什么办法可以解决克隆 git 子模块的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6770861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com