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

将私有Gem部署到Heroku时遇GitHub权限问题求助

解决Heroku部署私有GitHub Gem的权限问题

我之前也碰到过一模一样的问题,本质就是Heroku在拉取私有GitHub仓库时没有有效的身份凭证,HTTPS模式下它没法自动提供用户名密码,所以才会报那个“could not read Username”的错误。给你几个靠谱的解决方法,选一个适合你的就行:

方法一:用GitHub Personal Access Token(PAT)直接修改Gem源URL(简单直接)

这是最快速的解决方式,不过要注意别把敏感信息提交到代码里:

  1. 先去GitHub生成一个Personal Access Token:
    • 登录GitHub,进入Settings → Developer settings → Personal access tokens → Generate new token
    • 只勾选repo权限(足够访问私有仓库了,权限最小化更安全),然后生成并复制这个token(一定要记下来,刷新页面就看不到了)
  2. 修改你的Gemfile里的私有Gem引用,把原来的:
    gem 'pages-rails', git: 'https://github.com/revoxltd/pages-rails.git'
    
    改成:
    gem 'pages-rails', git: 'https://<你的PAT>@github.com/revoxltd/pages-rails.git'
    
    把<你的PAT>替换成刚才复制的token
  3. 本地运行bundle install更新Gemfile.lock,然后把修改后的Gemfile和Gemfile.lock提交到你的代码仓库
  4. 重新部署到Heroku,这时候Heroku就能用这个token拉取私有Gem了

⚠️ 注意:如果不想把PAT硬编码在Gemfile里,别用这个方法,看下面的方法二。

方法二:用Heroku环境变量+Bundler配置(更安全,推荐)

这个方法不用把PAT写进代码,通过环境变量传递凭证,更安全:

  1. 同样先生成一个带repo权限的GitHub PAT
  2. 登录Heroku控制台,找到你的应用,进入Settings → Config Vars,添加一个新的环境变量:
    • 键:BUNDLE_GITHUB__COM
    • 值:你的PAT:x-oauth-basic(这里x-oauth-basic是固定值,GitHub用它来识别OAuth token)
  3. 确保你的Gemfile里的引用还是原来的HTTPS地址:
    gem 'pages-rails', git: 'https://github.com/revoxltd/pages-rails.git'
    
  4. 重新部署Heroku,Bundler会自动读取这个环境变量里的凭证,顺利拉取私有仓库

方法三:用SSH方式(适合习惯SSH的用户)

如果平时用SSH访问GitHub,也可以用这种方式:

  1. 修改Gemfile里的URL为SSH格式:
    gem 'pages-rails', git: 'git@github.com:revoxltd/pages-rails.git'
    
  2. 生成一个新的SSH密钥对(别用你本地的个人密钥,专门用于部署更安全):
    ssh-keygen -t ed25519 -C "heroku-deploy@your-app.com"
    
  3. 把生成的公钥(.pub文件内容)添加到GitHub目标仓库的Settings → Deploy keys里,勾选“Allow write access”(如果不需要写权限可以不勾)
  4. 把私钥内容添加到Heroku的环境变量里,比如设置HEROKU_SSH_PRIVATE_KEY,然后在部署时把私钥写到.ssh目录:
    • 可以用一个buildpack(比如heroku-buildpack-ssh-key),或者在bin/postinstall脚本里处理私钥的写入
    • 也可以直接用Heroku的配置命令设置GIT_SSH_COMMAND:
      heroku config:set GIT_SSH_COMMAND="ssh -i /app/.ssh/id_rsa -o StrictHostKeyChecking=no"
      

不过这种方法步骤多一点,如果你只是解决Gem拉取的问题,方法二更推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:02:46