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

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


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

我们很高兴地报告,GitHub集成已重新启用!您现在可以重新连接GitHub,并使用新生成的令牌恢复您的Heroku管道功能,包括审查应用程序。 您可以立即连接到GitHub,也可以等待本文中描述的增强集成。现在要重新建立您的GitHub连接,请遵循这些说明。

以下是这篇博文中提到的“增强集成”:

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

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


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

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

Which Heroku features have become non-operative due to the removal of the Heroku-GitHub integration? Enabling review apps Creating (automatic and manual) review apps Deploying (automatic and manual) review apps Deploying an app from GitHub (either manual or automatic) Heroku CI cannot create new runs (automatically or manually) or see GitHub branch list Heroku Button: unable to create button apps from private repositories ChatOps: unable to deploy or get deploy notifications Any app with a GitHub integration may be affected by this issue. To address specific integration issues, please open a case with Heroku Support

从GitHub部署迁移到Git部署

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

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


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

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

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

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

所以,在Heroku web仪表板上,选择Heroku Git:

然后用Heroku登录设置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 -将"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)

5. 把你的树枝推到新的heroku遥控器上

Git推送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)

这里原名赫鲁。

如果您想从主分支部署更改

git push heroku main

如果你想从特性分支(而不是* main分支)推送你的更改

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

git push heroku feature:main

Heroku -是你的原始名称(用git remote -v确认你的原始名称 Feature -是你当前的分支,而不是主/主分支(用git branch或git状态检查你的分支名称)


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

如果你在一个分支上开发,并通过Git进行部署,你必须运行: Git推送heroku <你在>上开发的分支名:<你从>部署的分支名

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

检测到重复的构建版本


我使用的是2014年macOS 11.6.5 (Big Sur)版本的MacBook Pro

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通常是“origin”(git push origin…),这增加了另一个远程目的地,“heroku”(git push heroku…)

git remote

输出:

heroku
origin

我的code/git/pushing模式:

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

这将触发一个部署。您可以在仪表板和终端中观看或查看。将新的“heroku”源代码视为一个转储代码以进行推广的目录,而不是一个想要保存历史的存储库等等。在这种特殊模式下的二等公民。

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

要触发本地推送,请确保您的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不匹配错误。

解决方法:

登录Heroku网站 转到帐户设置 在面板中显示API键 在服务器的命令行中输入heroku login -i 输入电子邮件,使用API密钥作为密码,然后就可以执行Git远程推送的其余步骤了


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

部署到赫鲁库

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


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

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