Heroku 和 GitHub:“无法检索项目,内部服务器错误”

Syl*_*n43 259 github heroku

我只想连接到我的 GitHub 帐户。当我执行此操作时,我会在页面右上角收到以下红色小弹出窗口的错误消息:

无法检索项目,内部服务器错误。

Chr*_*ris 180

截至 2022 年 5 月 25 日 19:52 UTC,GitHub 集成已重新启用

我们很高兴地报告 GitHub 集成已重新启用!您现在可以重新连接 GitHub 并使用新生成的令牌恢复 Heroku 管道功能,包括Review Apps

您可以立即连接到 GitHub 或等待本博客文章中所述的增强集成。要立即重新建立您的 GitHub 连接,请按照以下说明进行操作。

以下是引用的博客文章中有关“增强集成”的内容:

为了改进集成的安全模型,我们正在与 GitHub 合作探索其他增强功能,其中包括迁移到 GitHub Apps 以获得更细粒度的权限,以及启用RFC8705以更好地保护 OAuth 令牌。由于这些增强功能需要 Heroku 和 GitHub 都进行更改,因此我们将随着参与的发展发布更多信息。

没有提及增强集成的可用性时间表。


2022 年 4 月 15 日至 5 月 25 日期间,Heroku 的 GitHub 集成功能在 Heroku 调查安全漏洞期间被禁用。在此期间,仍然可以通过其他方式进行部署,尤其是通过git push.

为了减轻可能受损的 OAuth 令牌的影响,我们将在接下来的几个小时内撤销 Heroku GitHub 集成中的所有现有令牌。我们还阻止创建新的 OAuth 令牌,直至另行通知。您的 GitHub 存储库不会受到此操作的任何影响。

由于删除了 Heroku-GitHub 集成,哪些 Heroku 功能变得不可操作?

  • 启用审阅应用程序
  • 创建(自动和手动)审阅应用程序
  • 部署(自动和手动)审核应用程序
  • 从 GitHub 部署应用程序(手动或自动)
  • Heroku CI 无法创建新的运行(自动或手动)或查看 GitHub 分支列表
  • Heroku Button:无法从私人存储库创建按钮应用程序
  • ChatOps:无法部署或获取部署通知
  • 任何集成了 GitHub 的应用程序都可能受到此问题的影响。要解决特定的集成问题,请向 Heroku 支持提交案例

从 GitHub 部署迁移到 Git 部署

于 2022 年 4 月 21 日 23:53 UTC,Heroku 提供了从基于 GitHub 的部署迁移到基于 Git 的部署的扩展说明:

虽然我们的客户仍然无法通过 Heroku 仪表板重新连接到 GitHub,但我们希望分享对之前提供的代码部署方法的补充。有关如何将部署方法从 GitHub 更改为 Heroku Git 的说明,请参阅以下帮助文章:如何使用 GitHub 存储库中提供的所有更改/应用程序代码将部署方法从 GitHub 切换到 Heroku Git

  • 我无法推送到heroku。这就是为什么我来这里寻找答案。当我运行 `heroku git:clone -a name_of_app` 时,它告诉我“警告:您似乎克隆了一个空存储库。” (4认同)
  • @Bus42,我不确定你指的是什么指令,但是[从 Heroku 克隆从来都不是常规工作流程的推荐部分](https://devcenter.heroku.com/articles/git-clone-heroku- app): “Heroku 应用程序的 Git 存储库仅用于部署目的。从该存储库进行克隆并未作为一项功能得到正式支持,只能作为最后的手段尝试。**不要**使用此存储库作为应用程序的规范“origin”存储库。相反,请使用您自己的 Git 服务器或版本控制服务,例如 GitHub。” (4认同)
  • 不要从 Heroku 克隆。如果您从未将代码直接推送到那里,您将得到一个空的存储库。如果您有现有的本地副本,请使用该副本。如果您出于某种原因需要克隆它,请从 _GitHub_ 克隆。 (3认同)

Hen*_*ron 113

这是由于其状态门户报告的问题(此处)

目前,解决方案是使用另一种推送策略。

目前最好的方法是将其遥控器Heroku CLI结合使用。其步骤是:

1. 如果尚未安装,请安装 Heroku CLI

有关安装和设置的更多信息可以在这里找到

2.使用heroku login命令进行登录

系统将提示您使用默认浏览器窗口完成 Heroku 门户的登录。

3. 假设您已经在 Heroku 上设置了应用程序(如果没有,请按照操作),您只需使用 Heroku CLI 为 Git 存储库添加新的远程即可。

运行heroku git:remote -a example-app- 将“ example-app ”替换为您的应用程序名称。

4.git remote -v检查遥控器是否设置成功

您应该看到类似这样的响应:

heroku  https://git.heroku.com/your-app-name.git (fetch)
heroku  https://git.heroku.com/your-app-name.git (push)
Run Code Online (Sandbox Code Playgroud)

5. 将您的分支推送到新的heroku远程

git push heroku your_branch_name

6. 您应该会看到终端中显示部署进度


该答案的参考资料取自此处,如果需要本答案中提供的信息以外的更多信息,也可以使用该参考资料。

  • 谢谢你的回答。如果您的本地分支与 main 或 master 不同,您可能会面临“远程:推送到 [main、master] 以外的分支,跳过构建”。错误。在这种情况下,运行:“git push heroku your_branch_name:main” 该命令会将 your_branch_name 推送到 heroku 远程的主分支。因此,如果您知道自己在做什么,请使用它。 (4认同)

小智 9

我处于同样的情况,正如其他人所说,这是由于 Heroku 安全问题造成的。同时,您可以使用 Heroku CLI 部署代码。

因此,在 Heroku Web 仪表板上,选择Heroku Git

使用 Heroku CLI 进行部署

然后使用 来设置 Heroku CLI heroku login

最后,如果您的存储库已存在于 GitHub 上,则需要通过运行以下命令来添加新的远程存储库:

heroku git:remote -a your_app_name
git push heroku master
Run Code Online (Sandbox Code Playgroud)

您可以在官方文档中找到有关此解决方案的更多信息。


小智 6

这只是暂时的事情,有关此问题的更多详细信息请参见此处

您可以同时推送到 GitHub 和 Heroku 以获取临时解决方案:

git push -u origin <branch>
git push heroku <branch>
Run Code Online (Sandbox Code Playgroud)

  • 您可能不想对这两者使用“-u”。[`-u` / `--set-upstream` 设置上游分支](https://git-scm.com/docs/git-push#Documentation/git-push.txt--u) 所以你可以这样做诸如“git push”和“git pull”之类的东西,无需指定远程。如果你为“main”运行这些,你只会来回切换。 (2认同)