You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab流水线克隆子模块时出现‘could not read Username’错误求助

GitLab流水线克隆子模块失败的解决办法

要不要转相对URL?

必须要!把子模块URL改成相对路径,是解决同GitLab实例同群组下子模块克隆权限问题的省心方案。因为主项目和子模块在同一实例同一群组时,用相对URL能让流水线自动复用主项目的CI/CD令牌权限,不用额外填用户名密码,自然就不会出现could not read Username的报错了。

怎么改?

  1. 打开项目根目录的.gitmodules文件,把子模块的url换成相对路径:

    [submodule "build-tools"]
            path = build-tools
            url = ../build-tools.git
    

    (主项目路径是core/frontend-dev/api-service.git,子模块是core/frontend-dev/build-tools.git,所以用../build-tools.git就能对应上)

  2. 本地执行命令更新配置并提交:

    git submodule sync
    git add .gitmodules
    git commit -m "把子模块URL改成相对路径"
    git push
    

还有其他办法吗?

要是不想改相对URL,试试这两种:

  • 给CI令牌加权限:去子模块项目的「设置→成员」里,把主项目所在的群组或者主项目本身加进去,至少给「开发者」权限,这样流水线的CI_JOB_TOKEN就能访问子模块了。
  • 在.gitlab-ci.yml里直接注入令牌:
    variables:
      GIT_SUBMODULE_STRATEGY: recursive
      GIT_SUBMODULE_URL_OVERRIDE: "https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/core/frontend-dev/build-tools.git"
    

内容的提问来源于stack exchange,提问作者mdailey77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 02:12:39