如何在git push上解决“拒绝允许OAuth应用创建或更新工作流程”

时间:2020-09-25 07:20:46

标签: git github

在git push上获得“拒绝允许OAuth应用创建或更新无.github/workflows/cd.yml范围的工作流workflow的信息”。如何授予工作流范围?

11 个答案:

答案 0 :(得分:14)

这个问题的发生也仅仅是因为您当前的令牌不允许在 Github 上使用工作流。 执行以下步骤修复

对于在 MacOS 上使用 Android Studio 的人:

  1. 删除您当前的令牌(首选项 -> 版本控制 -> GitHub): enter image description here

记得点击“确定”按钮。

  1. 再次尝试从 Android Studio 推/拉,现在会出现一个弹出窗口。 enter image description here

  2. 点击使用令牌...按钮,将出现另一个弹出窗口。 enter image description here

  3. 点击Generate,您将被发送到GitHub网站以生成一个新的令牌。请记住选择工作流权限。 enter image description here

  4. 点击生成按钮获取新令牌并将其粘贴到第 3 步中的 Android Studio。现在一切都设置好了。

答案 1 :(得分:9)

就我而言,我在 macOS 钥匙串中有过时的 GitHub 凭据。我正在修改工作流文件并从命令行推送更改,因此我根本没有考虑检查钥匙串。 Updating credentials from the macOS Keychain 解释了如何使用 git credential-osxkeychain 擦除钥匙串:

$ git credential-osxkeychain erase
host=github.com
protocol=https
> [Press Return]

然后我不得不再次输入我的用户名和密码。这次我生成了一个新的个人访问令牌并将该令牌用作密码。然后我终于可以推动工作流程的变化。

答案 2 :(得分:7)

当试图使用IntelliJ推送到包含GitHub Action工作流(.github / workflows中的Yaml文件)的分支时,我确实遇到了这个问题。我发现Internet上的现有资源不是很有帮助,所以希望这也可以帮助您解决它。

TL; DR:在GitHub中启用workflow范围的情况下生成新的OAuth令牌,并将您的应用程序配置为使用该令牌。

背景:与GitHub集成的第三方工具(例如IntelliJ,Visual Studio Code,Github Desktop等)使用OAuth令牌连接到您的GitHub帐户,以便它们可以代表您拉/推。对于IntelliJ,他们的指令仅说包括repogistread:org范围。但是您需要workflow范围来修改GitHub Actions。

解决方法如下:

  1. 在您的Github帐户中,转到“设置”(在右上角的头像下拉列表中)
  2. 转到开发人员设置>个人访问令牌
  3. 如果列出了您的应用程序,请单击其名称以编辑与其OAuth令牌关联的设置。确保选中workflow
  4. 单击“更新令牌”以保存更改。
  5. 在同一页面上,单击“生成令牌”。仔细阅读信息,然后单击“确定”继续。
  6. 复制Github向您显示的新令牌。
  7. 您需要使用新令牌重新创建应用程序与Github的集成,以使更改生效。

在IntelliJ中,最后一步是转到“设置”>“版本控制”>“ GitHub”,然后删除现有集成并重新添加它,并粘贴新令牌。您必须找出要使用的工具以为其提供新的GitHub OAuth令牌的必要条件。

答案 3 :(得分:7)

对于Windows 10:转到设置->凭据管理器-> Windows凭据->删除github.com凭据-> git从git-bash控制台拉/推送您的github项目->在IDE / Source控件中重新连接GitHub帐户。 您不需要使用“工作流程”创建个人访问令牌,也不需要创建秘密的GITHUB_TOKEN(它会创建自动,而不能创建手动)

答案 4 :(得分:6)

我很惊讶 Mac 用户没有答案。我正在从 Atom 文本编辑器推送我的工作流文件,这对我有用。

  1. 转到 github personal access tokens settings 并生成一个新令牌。确保同时选择存储库和工作流访问范围。
  2. 转到 Mac 上的 Keychain Access 应用程序,然后搜索 github。我发现了一个 entry 列出的 github.com Internet password(从 Big Sur 开始),它之前充满了看似随机的标记。使用步骤 1 中生成的以 ghp_ 开头的令牌替换密码条目。

答案 5 :(得分:4)

在 Windows 10 上这是我如何解决问题的分步说明

我已经包含了很多屏幕截图`因为这比它应该更难解决。

事后看来,@CSRedRat 说的是对的,但当我遇到问题时,我无法理解,因为答案太简洁了。

最终促使我找到解决方案的是 this article,这使情况更加清晰。

这是交易。虽然您可以使用 GitHub 开发人员设置菜单来解决这个问题,以生成一个新的令牌,然后将其粘贴到 Windows 凭据管理器中,但您不应该,因为最终该令牌将过期,然后您将再次遇到此问题,因为自从您手动设置令牌后,没有人知道如何刷新令牌。

相反,此令牌权限问题需要通过适用于 Windows 的 Git 修复。因此,交易是 Windows 的“旧”Git Credential Manager 没有要求 privs 来创建或更新工作流,但现在您需要它们。好消息是有一个我们称为 Git Credential Manager Core 的新版本,它确实需要这些权限等等。

新的凭证管理器随 Git 2.28 及更高版本一起提供,但默认情况下未启用。如果您已经安装了此版本或更高版本的 Git for Window,那么您甚至已经拥有该软件。就我而言,我使用的是 2.30.2 版,所以我已经有了新软件。

enter image description here

但它仍然使用我的旧 Git 作为 Windows 凭据,这些凭据不带有所需的权限。 zyjsy 也可能是您的情况,或者如果您的版本低于 2.28,那么您需要先安装较新的版本。无论哪种方式,一旦您的计算机上有足够新的 Windows 版本的 Git,下一步就是通过在 Windows 搜索框中键入“windows 凭据管理器”来删除旧凭据。

enter image description here

然后找到每个 git 凭证,点击它并点击删除按钮。

enter image description here

现在,当您下次尝试从 git bash Visual Studio 或您使用的任何 git 客户端访问您的 get 帐户时,系统将提示您输入新凭据,因为旧凭据已消失。单击下面对话框中的 Sign in with your browser 按钮:

enter image description here

然后你会看到一个像下面这样的网页,如果你展开工作流下拉菜单,你会看到它要求你这次需要的权限。然后点击 Authorize 按钮。

enter image description here

一旦你这样做了,你会看到一个像这样提供你的github密码的页面:

enter image description here

现在您的 Windows 凭证管理器中有一个新凭证,它具有您需要的权限,并且您曾经失败的操作现在将成功。是的!

答案 6 :(得分:2)

我在尝试将更改推送到 .\github\workflows\build.yml 时遇到了 CLion 2020.2.3 的这个问题。 CLion 似乎使用了不包括“工作流”范围的“JetBrains IDE 集成”令牌(GitHub 设置 -> 应用程序 -> 授权 OAuth 应用程序)。似乎没有办法更改此令牌的范围。

我创建了一个具有正确权限的新个人访问令牌(GitHub 设置 -> 开发人员设置 -> 个人访问令牌 -> 生成新令牌),但我无法配置 CLion 以使用它。

最终我可以使用 GitHub Desktop 来推送提交。

答案 7 :(得分:0)

我必须将Git For Windows升级到2.29.2.2版。这就允许git命令行通过GitHub现在需要的浏览器登录。

在尝试重置Windows Credential Manager并重新生成我的个人访问令牌后,我这样做了,但无法解决该问题。但这确实导致GitHub向我发送了这样的电子邮件:

[GitHub]需要采取的措施-不再支持Windows Git中的密码身份验证

我们检测到您最近尝试使用旧版Git for Windows向GitHub进行身份验证。 GitHub更改了用户使用Windows版Git时进行身份验证的方式,现在需要使用Web浏览器对GitHub进行身份验证。为了能够通过Web浏览器登录,用户需要更新到Windows的最新版本。

答案 8 :(得分:0)

这在 GitKraken 上发生在我身上。我只是从 GitKraken 断开并重新连接 GitHub 并且它起作用了。

答案 9 :(得分:0)

这在 PHPStorm 上发生在我身上。我试图使用 IDE 提交和推送我的更改,所以当我收到错误时,我尝试在 IDE 控制台上使用命令行推送,我得到了它。

答案 10 :(得分:0)

通过使用 Desktop Github App 推送我的更改来修复此问题(它似乎具有完全权限与 vs 代码的有限范围)。

通过修改的工作流文件获得一次提交后,我能够在 vs code 中再次正常进行推送提交。