通过令牌进行 heroku CLI 身份验证

heroku CLI auth by token

每次从 Gitlab 注册表构建并推送 docker 图像到 Heroku 注册表后,我需要执行 heroku container:release web 到 Heroku 运行 图像(发布),但我想自动化这个

我在 gitlab-ci-yml 中添加了 heroku CLI 工具安装,但我无法通过令牌对 heroku CLI 进行授权
当我尝试设置 HEROKU_API_KEY=token 和 运行 heroku login 时出现错误 Error: Cannot log in with HEROKU_API_KEY set
还尝试在启用 HEROKU_DEBUG 的情况下执行此操作,但调试器信息无法帮助我
我无法使用 ~/.netrc

有什么方法可以授权 heroku CLI 或在 heroku 中自动发布 docker 图像?

当前gitlab-ci.yml:

before_script:
    - apt install snapd
    - snap install --classic heroku
    - HEROKU_API_KEY=$HEROKU_API_TOKEN heroku login
    - docker login -u $REGISTRY_UNAME -p $REGISTRY_PWD registry.gitlab.com
    - docker login --username=_ --password=$HEROKU_PWD registry.heroku.com
script:
    # a lot of tag & push lines
    - heroku container:release web

如果设置了HEROKU_API_KEY环境变量,则无需重新登录。 API 键将用于 Heroku CLI 命令(如果存在)。

确保使用 heroku authorizations:create 创建永不过期的令牌。查看 this 了解详细说明。

参考:https://github.com/heroku/cli/issues/502#issuecomment-309099883

请注意 git 命令如 git push heroku master 不会使用 API 键。有关详细信息,请参阅 this

通过更改导致令牌更改并重新创建新令牌的帐户密码解决了问题
然后 运行 再次 HEROKU_API_KEY=token heroku container:release web 成功