Heroku 和 GitHub :“Items could not be retrieved, Internal server error”;

我只是想连接到我的GitHub账户。当我这样做的时候,我得到这个错误消息作为一个小红色弹出在页面的右上角:

Items could not be retrieved, Internal server error

94950 次浏览

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

我们很高兴地报告,GitHub集成已重新启用!你现在可以重新连接GitHub和恢复你的Heroku管道功能,包括回顾应用程序,与新生成的令牌。

您可以立即连接到GitHub或等待增强的集成,如博客所述。现在要重新建立您的GitHub连接,请遵循这些指令

以下是引用的博客文章中关于“增强集成”的说法:

为了改善集成的安全模型,我们正在探索与GitHub合作的其他增强功能,其中包括转移到GitHub应用程序以获得更细粒度的权限,并启用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 Support一起打开一个案例

从GitHub部署迁移到Git部署

在2022-04-21 23:53 UTC, Heroku提供了从基于github的部署迁移到基于git的部署的扩展说明:

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

这只是一个临时的事情,关于这个问题的更多细节是在这里

你可以同时推送到GitHub和Heroku,以获得临时解决方案:

git push -u origin <branch>
git push heroku <branch>

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

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

Deploy with Heroku CLI

然后用heroku login设置Heroku CLI。

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

heroku git:remote -a your_app_name
git push heroku master

你可以在官方文件中找到关于这个解决方案的更多信息。

这是由于他们的状态门户在这里报告的一个问题。

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

目前,最好的方法是使用远程Heroku CLI。步骤如下:

1. 如果还没有安装,请安装Heroku CLI

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

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

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

3.假设你已经在Heroku设置了你的应用程序(如果没有,请遵循),你只需要用Heroku CLI为你的Git存储库添加一个新的远程。

运行heroku git:remote -a example-app - substitute "你的应用程序名称。

4. git remote -v检查远程设置是否成功

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

heroku  https://git.heroku.com/your-app-name.git (fetch)
heroku  https://git.heroku.com/your-app-name.git (push)

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

git push heroku your_branch_name

6. 您应该在终端中看到部署的进度


此答案的引用来自在这里,如果需要此答案中提供的信息之外的进一步信息,也可以使用该答案。

我看到了之前的答案,但因为我面临着一个问题与评论应用程序(PR应用程序),大多数情况下,你将与不同的分支工作在这种情况下,所以这里有一个解决方案,推动你的东西,而不是(主/主)分支到Heroku。

首先,确保正确设置了远程源

heroku git:remote -a your_awesome_app

你也可以通过git remote -v确认它,你应该看到你的原点指向你的Heroku应用程序。

git remote -v


heroku    https://git.heroku.com/your_awesome_app.git (fetch)

这里起源的名字是heroku

__abc0 __abc1 __abc2

git push heroku main

__abc0 * __abc1 __abc2

然后使用下面的命令将你的特征分支推到Heroku

git push heroku feature:main
  • heroku -是您的原始名称(用git remote -v确认您的原始名称
  • feature -是你当前的分支,它不是/主分支(用git branchgit status检查你的分支名称)

如果在尝试推送时出现错误,可能是因为开发和部署的分支名称不同。在这种情况下,请遵循下面的说明;

如果你在一个分支上开发,并通过Git进行部署,你必须运行:

   git push heroku <branchname you're developing on>:<branch you're deploying from>

本文将详细介绍这种行为:

检测到重复的构建版本

我使用的是2014年的MacBook Pro,带有macOS 11.6.5(大苏尔)版本

brew tap heroku/brew && brew install heroku

我得到一个错误和消息更新到最新的Xcode。最新的Xcode需要最新的macOS,而我无法升级到最新的macOS(我需要2015年的MacBook Pro或更新的版本)。对于一台2014年的MacBook Pro,我能够安装Xcode_13.2.1。Xip,并能够运行。现在我可以向Heroku推送最新消息了。

brew tap heroku/brew && brew install heroku

下面是我用在Heroku上的简单工作模式。这是为了帮助那些以前可能没有经历过这种情况的人。我以前用过这个(2014-5),昨晚不得不重新设置。

首先添加Heroku遥控器:

git remote add heroku https://git.heroku.com/YOUR-APP.git

因为GitHub经常是“原创”;(git push origin…),这将添加另一个远程目的地,"heroku"(git推heroku…)

git remote

输出:

heroku
origin

我的code/git/pushing模式:

  1. 地方发展也是一样的。推送到GitHub,合并,什么都没有改变。
  2. 将你的部署设置为“Heroku git”;正如@a-chris概述的那样。
  3. 推送到Heroku,只需将正确的分支推送到新添加的“;Heroku "远程数据源。我使用--force选项来排除任何冲突的可能性。除非你之前使用过Heroku Git和分支,否则应该只有一个分支——通常是“master”。使用。

这将触发一个部署。您可以在仪表板和终端中观看或查看。对待新的“heroku"source作为一个目录来转储代码来提升和<强> < / >强不作为一个存储库,你想保留历史等等。在这种特殊模式下的二等公民。

我现在从我的本地终端,而不是自动部署或通过仪表板按钮。如果您的组织规模较大,我建议控制访问。许多开发人员可能没有处理多个目标存储库或捕捉意外推送的经验。

要触发本地推送,请确保您的master(或任何东西)是最新的…注意你的提交哈希!

这将设置你遵循诸如作为BR19_so和其他建议。

我也有同样的问题。我已经安装了cli。

git remote

输出:

heroku
origin


git remote -v

输出:

heroku  https://git.heroku.com/YOUR-APP.git (fetch)
heroku  https://git.heroku.com/YOUR-APP.git (push)
origin  https://github.com/GitUserName/yourRepo.git (fetch)
origin  https://github.com/GitUserName/yourRepo.git (push)

如果您的分支名为main,请使用Git分支进行验证。例如,你会这样做:

git push heroku main

对我来说是

git push heroku master

现在推动您的本地更改

git push heroku master

输出:

To https://git.heroku.com/YOUR-APP.git
! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://git.heroku.com/YOUR-APP.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我不在乎它和遥控器有什么不同。我一直在本地开发,并没有意识到自动Git部署已经失败了。我关心的是局部的变化:

git push heroku master -f

现在部署的应用程序正按预期工作。

恩里克·阿伦的回答为本地机器工作。

对于远程SSH服务器,您将面临IP不匹配错误。

解决方法:

  1. 登录Heroku网站

  2. 进入帐户设置

  3. 显示该小组中的API键

  4. 在服务器命令行中输入heroku login -i

  5. 输入电子邮件,使用API密钥作为密码,您可以遵循Git远程推送的其余步骤

对于那些将此集成用于部署目的的人,我建议您在这里使用部署到Heroku GitHub操作:

部署到Heroku

这样,您就不必对部署工作流进行重大更改。

有一个关于此问题的更新。你现在可以像更新中提到的那样启用GitHub集成。

如果它不起作用,你可以尝试删除应用程序到GitHub的连接(断开连接),然后重新添加连接。再次添加连接也可以在隐身模式下完成,因为有时会出现与cookie相关的问题(这里提到)。