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

部署Heroku应用时如何拉取多个GitHub私有仓库作为依赖

Heroku部署时拉取多个GitHub私有仓库依赖的解决方案

方案一:使用GitHub个人访问令牌(PAT)(推荐)

无需额外自定义buildpack,操作更简便:

  • 登录GitHub,进入Settings > Developer settings > Personal access tokens页面,生成仅勾选repo权限的PAT,复制生成的令牌值。
  • 进入Heroku对应应用的设置页面,找到Config Vars配置项,新增变量GITHUB_TOKEN,值填写刚才生成的PAT。
  • 修改项目package.json中的私有依赖地址,将原有SSH格式的地址git+ssh://git@github.com/<用户名>/<仓库名>.git#<版本号>替换为HTTPS带变量的格式:git+https://${GITHUB_TOKEN}@github.com/<用户名>/<仓库名>.git#<版本号>。
  • 直接使用Heroku官方Node.js buildpack构建即可,只要生成PAT的账号拥有对应私有仓库的访问权限,所有私有依赖都可以正常拉取。

方案二:使用多Deploy Key配合兼容多密钥的buildpack

如果不希望使用个人账号关联的PAT,可以采用该方案:

  • 为每个需要拉取的私有GitHub仓库单独生成无密码的SSH密钥对。
  • 将所有生成的私钥内容用换行拼接成完整字符串,存入Heroku应用的Config Var中,变量名可设为GITHUB_MULTI_DEPLOY_KEYS。
  • 在Heroku应用的buildpack列表中,先添加支持多SSH密钥的buildpack,再添加官方Node.js buildpack。构建时多密钥buildpack会自动将所有私钥加载到SSH代理中,拉取依赖时会自动匹配对应仓库的公钥。
  • 提前将每个密钥对的公钥分别添加到对应私有仓库的Deploy Key配置中,仅勾选只读权限即可。

注意事项:

  1. 使用PAT方案时,不要将PAT明文写入package.json提交到代码仓库,依赖地址仅保留环境变量占位符,令牌仅存储在Heroku的配置变量中,避免权限泄露。
  2. 使用多Deploy Key方案时,确保私钥拼接格式正确,无多余空格或格式错误,否则会导致SSH认证失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:36:05