'You do not have access to the app' 尝试访问 heroku 控制台时

'You do not have access to the app' when trying to access heroku console

我最近开始在 Rails 上使用 Ruby 在 Heroku 上合作一个项目。我被添加为协作者并将遥控器添加到我的环境中。经过一些开发,我推送了一些更改并且没有问题:

$ git push staging

其中 staging 是我的遥控器的名称。 后来,在 Heroku 上尝试 运行 "rake test" 时,我收到一个错误:

$heroku run rake test --app staging
Running `rake test` attached to terminal... failed
 !    You do not have access to the app staging.

这很奇怪,因为我完全能够推动自己的更改。我检查了 Heroku 仪表板,看到我的推送记录在那里。然后我尝试使用控制台查看日志,也出现了同样的问题。

$ heroku logs --app staging
 !    You do not have access to the app staging.

最后,我尝试访问控制台,但也失败了。

$ heroku run rails console --app staging
Running `rails console` attached to terminal... failed
 !    You do not have access to the app staging.

此时我更新了我的 Heroku toolbelt 安装,并使用 "heroku auth" 验证我的电子邮件是否显示,但错误仍然存​​在。我目前正在联系 Heroku 支持,但我希望有类似问题的人可以同时帮助我。

谢谢!

这是因为您的 ssh 密钥不再被允许访问。确保您的 ssh 密钥相同。您还可以生成您的 ssh 密钥并将其添加到 heroku。

以防万一有人遇到类似问题,这是因为我将 Heroku 应用程序的名称与 git 遥控器的名称混合在一起。因此,当我调用 --app staging(我的遥控器的名称)时,我应该使用 Heroku 中的应用程序的实际名称。

当您没有添加 heroku git 远程存储库时也会发生这种情况。

您可以使用以下命令添加它:

git remote add heroku https://git.heroku.com/<your project>.git

您也可以输入

heroku git:remote -a AppName

在第一次使用 Heroku toolbelt 命令之前,请务必 运行 heroku login。它不会告诉你你之前没有登录过。

您还可以运行:

heroku run rake test --remote staging

不确定幕后发生了什么,但本地 CLI 工具会根据您的 git 遥控器确定您指的是哪个应用程序。

我遇到了同样的问题,我不是从 master 那里推送的,所以我不得不使用这个: git 推送 heroku :main

我遇到了同样的问题,因为我在 heroku 上创建了多个遥控器(例如,一个名为“staging”的遥控器用于 staging,默认的遥控器“heroku”用于 prod)。

解决方案

使用这两个选项让 heroku 知道您指的是哪个应用程序和远程:

  1. -a your_app_name,以及
  2. --remote name_of_remote

例子

例如,对于名为 staging 的远程:

heroku run env -a your_app_name --remote staging

或者像这样的生产遥控器:

heroku run env -a your_app_name --remote heroku

额外信息

上面的代码 运行 是简单的命令 env,但您可以将其替换为您想要在 heroku 上 运行 的任何命令。

替换遥控器的名称。默认情况下,heroku 创建一个名为 heroku 的远程,这通常是生产远程。您可以使用以下命令获取遥控器:git remote.