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

Ara*_*ian 75 git github github-actions

得到

拒绝允许 OAuth 应用程序在.github/workflows/cd.yml没有workflow范围的情况下创建或更新工作流”

git push。如何授予workflow范围?

Emm*_*ows 97

在尝试使用 IntelliJ 推送到包含 GitHub 操作工作流(.github/workflows 中的 yaml 文件)的分支时,我确实遇到了这个问题。我没有发现 Internet 上的现有资源很有帮助,所以我希望这也能帮助您修复它。

TL;DR:生成一个新的个人访问令牌,并workflow在 GitHub 中启用范围并配置您的应用程序以使用它。

背景:与 GitHub 集成的第三方工具(如 IntelliJ、Visual Studio Code、Github Desktop 等)使用令牌连接到您的 GitHub 帐户,以便他们可以代表您拉/推等。在 IntelliJ 的情况下,他们的说明只说包括repogistread:org范围。但是您需要workflow修改 GitHub 操作的范围。

以下是修复方法:

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

注意:如果您的应用程序自动刷新其权限,您可以跳过第 5 步,但这似乎对我使用 IntelliJ 不起作用。

在 IntelliJ 中,最后一步是转到Settings > Version Control > GitHub,然后删除现有集成并重新添加它,粘贴新令牌。您必须了解需要为您使用的工具做什么才能为其提供新的 GitHub 个人访问令牌。

  • 您还可以编辑当前的个人访问令牌,通过在其中包含“workflow”来更改其范围。这正是我刚刚为解决这个问题所做的事情。 (5认同)

小智 32

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

  • 对我来说,它删除了所有与 github 相关的凭据,然后注销并返回到 github 桌面应用程序。但到目前为止最接近的答案! (4认同)

Pha*_*hai 19

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

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

  1. 删除您当前的令牌(首选项 -> 版本控制 -> GitHub): 在此处输入图片说明

记得点击“确定”按钮。

  1. 再次尝试从 Android Studio 推/拉,现在会出现一个弹出窗口。 在此处输入图片说明

  2. 点击 Use Token... 按钮,将出现另一个弹出窗口。 在此处输入图片说明

  3. 点击 Generate,您将被发送到 GitHub 网站以生成一个新的令牌。请记住选择工作流权限。 在此处输入图片说明

  4. 点击 generate 按钮获取一个新的 token 并在步骤 3 中将其粘贴到 Android Studio 中。现在一切都设置好了。

  • 感谢您为创建图形所做的努力!非常容易遵循。问题解决了。 (3认同)

Ron*_*n C 19

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

我提供了很多屏幕截图,因为这比本来应该更难解决。

事后看来,@CSRedRat 所说的是正确的,但当我遇到问题时,我无法理解,因为答案是如此简洁。

最终导致我找到解决方案的是这篇文章,它使情况更加清晰。

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

相反,这个令牌权限问题需要通过 Windows 版 Git 来修复。因此,解决方案是 Windows 的“旧”Git Credential Manager 不需要权限来创建或更新工作流程,但现在您需要它们。好消息是我们有一个名为 Git Credential Manager Core的新版本,它确实需要这些权限以及更多权限。

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

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

然后您将看到如下所示的网页,如果您展开工作流程下拉列表,您将看到它正在询问您这次所需的权限。然后单击Authorize按钮。

在此输入图像描述

完成此操作后,您将看到类似这样的页面,用于提供您的 github 密码:

在此输入图像描述

现在,您的 Windows 凭据管理器中拥有了一个新凭据,其中包含您所需的权限,并且过去失败的操作现在将成功。是的!


Die*_*ego 13

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

  1. 转到github 个人访问令牌设置并生成新令牌。确保同时选择 repo 和工作流访问范围。
  2. 转到 Mac 上的 Keychain Access 应用程序,然后搜索 github。我发现了一个条目中列出github.comInternet password种类(如大苏尔的),这是预先用看似随意的令牌。用步骤 1 中生成的以 开头的令牌替换密码条目ghp_


小智 12

使用github cli配置本地环境时会出现此错误。目前尚不清楚更新权限需要什么。不过,对于 CLI,您可以运行以下命令来启用它,然后继续。

gh auth login --scopes workflow

  • 当我尝试将本地存储库(包含工作流程)推送到新的裸 GitHub 存储库时,我收到此错误。这个解决方案为我解决了这个问题。 (2认同)

eir*_*vaa 11

就我而言,我在 macOS 钥匙串中有陈旧的 GitHub 凭据。我正在修改工作流文件并从命令行推送更改,因此我根本没有考虑检查钥匙串。在从MacOS的钥匙扣更新凭据讲解了如何使用git credential-osxkeychain擦除钥匙扣:

$ git credential-osxkeychain erase
host=github.com
protocol=https
> [Press Return]
Run Code Online (Sandbox Code Playgroud)

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


wor*_*cle 9

  1. 找到您的令牌,应该在这里https://github.com/settings/tokens
  2. 授予workflow如下图所示 在此输入图像描述


Aer*_*mic 6

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

在通过修改后的工作流程文件进行一次提交后,我能够在vs code.