BitBucket Pipeline部署Heroku认证失败,咨询登录方式及解决方案
BitBucket Pipelines 部署到 Heroku 认证失败的解决方案
你遇到的问题是因为 Heroku 已经不再允许通过 Git 用户名+密码的方式进行认证了,官方要求使用 API 令牌或者 Heroku CLI 凭证来完成部署授权。下面给你几个可行的解决方案,同时解答你关于 Heroku Pipeline 的疑问:
关于 Heroku Pipeline 的疑问
首先明确:Heroku Pipeline 是用来管理应用部署流程(比如从测试环境到生产环境的版本晋升)的工具,它并不能帮你在 BitBucket Pipelines 中完成登录认证。所以你没法通过 Heroku Pipeline 解决这个认证问题,得用下面的方法。
解决方案1:使用 Heroku API 令牌配置环境变量(最推荐)
这是最简单高效的方式,不需要在 Pipeline 中安装额外工具:
- 登录你的 Heroku 账户,进入「账户设置」→「Applications」→「Create Authorization」,创建一个新的 API 令牌(记得保存好这个令牌,它只会显示一次)。
- 打开你的 BitBucket 仓库,进入「Settings」→「Repository variables」,添加一个名为
HEROKU_API_KEY的变量,值就是刚才生成的 API 令牌。 - 修改你的
bitbucket-pipelines.yml文件,在部署脚本中用 API 令牌配置 Git 远程地址:
这样就能通过 API 令牌完成认证,彻底避开用户名密码的问题。pipelines: default: - step: name: Deploy to Heroku script: - git remote add heroku https://heroku:$HEROKU_API_KEY@git.heroku.com/你的应用名称.git - git push heroku master --force
解决方案2:在 Pipeline 中使用 Heroku CLI 登录
如果你更习惯用 Heroku CLI 操作,可以在 Pipeline 中安装 CLI 并通过 API 令牌登录:
- 先按照方案1的步骤生成 Heroku API 令牌,并在 BitBucket 中配置
HEROKU_API_KEY变量。 - 修改
bitbucket-pipelines.yml:pipelines: default: - step: name: Deploy to Heroku script: # 安装 Heroku CLI - curl https://cli-assets.heroku.com/install-ubuntu.sh | sh # 通过 API 令牌登录 - heroku login -i --apikey $HEROKU_API_KEY # 推送代码到 Heroku - git push heroku master
额外注意事项
- 确保你的 Heroku API 令牌权限设置正确(一般选「Global」权限即可),保证 BitBucket Pipelines 能访问到目标应用。
- 如果推送时遇到代码版本冲突,可以加上
--force参数强制推送,但生产环境要谨慎使用,最好先确认代码版本的一致性。
内容的提问来源于stack exchange,提问作者Ben Gannaway
相关产品推荐
相关产品推荐

