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

在Jenkins中使用GitHub访问令牌克隆带子模块的Git仓库

解决子模块用访问令牌克隆的问题

1. 修正你的.gitconfig配置

你之前的配置有两处问题:一是拼写错误(x-access-toekn应为x-access-token),二是格式处理不当。正确的配置如下:

[url "https://x-access-token:${TOKEN}@github.com/"]
  insteadOf = git@github.com:

将${TOKEN}替换为你通过GitHub API获取到的真实访问令牌即可。注意:

  • URL必须用引号包裹,避免git解析特殊字符时出错
  • insteadOf的值要和子模块的SSH地址前缀完全匹配——子模块地址是git@github.com:xxx/yyy.git格式,所以设为git@github.com:才能把SSH地址替换成带令牌的HTTPS地址

2. 在Jenkins流水线中让配置生效

有两种简单可行的方式:

  • 临时全局配置:在执行子模块更新命令前,直接在Jenkins脚本中运行这条命令:

    git config --global url."https://x-access-token:${GITHUB_ACCESS_TOKEN}@github.com/".insteadOf "git@github.com:"
    

    这里的${GITHUB_ACCESS_TOKEN}就是你拿到的访问令牌,用Jenkins环境变量注入即可,不要硬编码。

  • 指定本地配置文件:如果不想修改全局配置,执行git命令时指定你的.gitconfig路径:

    git --config-file=/path/to/your/.gitconfig submodule update --init --recursive
    

3. 验证配置是否生效

可以先运行这条命令检查替换规则是否正确加载:

git config --get-regexp insteadOf

如果输出包含url.https://x-access-token:***@github.com/.insteadOf git@github.com:,说明配置生效。

额外注意事项

  • 确保你的GitHub App安装权限包含所有子模块仓库的读取权限,否则即使令牌正确也会克隆失败
  • 避免将令牌硬写在配置文件中,优先通过Jenkins环境变量传递,防止令牌泄露

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:15:43