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

sul*_*ula 7 heroku heroku-cli

每次构建 docker 镜像并将其从 Gitlab 注册表推送到 Heroku 注册表后,我都需要执行heroku container:release webHeroku 运行镜像(发布),但我想自动化此操作

我将heroku CLI工具安装添加到gitlab-ci-yml,但我无法通过令牌对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
Run Code Online (Sandbox Code Playgroud)

Aru*_*han 10

如果您设置了HEROKU_API_KEY环境变量,则无需再次登录。API 密钥将用于 Heroku CLI 命令(如果存在)。

确保使用heroku authorizations:create创建永不过期的令牌。看看这个有详细的解释。

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

请注意,git类似的命令git push heroku master不会使用 API 密钥。请参阅了解更多信息。


sul*_*ula 2

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