如何解决在git push时出现的“拒绝允许OAuth应用创建或更新工作流程”的问题

216

如何授权workflow范围,以允许OAuth应用程序在git push时创建或更新工作流.github/workflows/cd.yml,而不是拒绝它。


你是如何创建用于推送的令牌的?你是如何创建 OAuth 应用程序的?OAuth 应用程序在请求令牌的作用域时是否请求了“workflow”作用域?我们需要更多关于发生了什么以及如何设置的详细信息,才能为您提供有用的答案。 - bk2204
@bk2204 我使用了 https github 克隆。 - Ara Yeressian
19个回答

4

你也可以从使用 https 切换到使用 SSH。

  1. 创建你的 SSH 密钥,你可以遵循 文档
  2. 将远程库从 https 切换到 SSH,同样可以参考 文档

3
这种情况在GitKraken上发生过。我只需从GitKraken断开并重新连接GitHub,问题就解决了。

2

如果您推送到存储库并看到:

(refusing to allow a Personal Access Token to create or update workflow .github/workflows/docker_build_push.yml without workflow scope)

这意味着您正在使用的GitHub个人访问令牌(PAT)没有'工作流程'权限。

解决方法

  1. 点击这里:https://github.com/settings/tokens
  2. 创建一个新的个人访问令牌(PAT),并确保勾选'工作流'框
  3. 将生成的PAT复制到剪贴板
  4. 删除或撤销任何现有的PAT(这是在同一GitHub链接上完成的)
  5. 由于现有的PAT已被撤销/删除,因此下次从私有存储库中进行推送/拉取时,您将被提示输入github用户名(您的实际github用户名或电子邮件将起作用)和密码(将PAT粘贴到密码字段中)。

就是这样!它应该会推送,并且错误现在应该已经消失了。

enter image description here


2
我在尝试将更改推送到 .\github\workflows\build.yml 时,遇到了CLion 2020.2.3的问题。 CLion似乎使用“JetBrains IDE Integration”令牌(GitHub设置 -> 应用程序 -> 授权的OAuth应用程序),该令牌不包括“workflow”范围。似乎没有办法更改此令牌的范围。
我创建了一个具有正确权限的新个人访问令牌(GitHub设置 -> 开发人员设置 -> 个人访问令牌 -> 生成新令牌),但我无法配置CLion以使用它。
最终,我使用GitHub Desktop成功推送了提交。

我在使用RubyMine时遇到了同样的问题。尽管我创建了一个具有工作流范围的新令牌,但它的行为就像没有被授予该范围一样。最终我通过重启解决了这个问题,不过我现在怀疑仅仅重新启动RubyMine也可以解决。 - Larry Gebhardt

1
我按照这篇文章的指示安装了Git Credential Manager Core,以便自动处理此问题。在我的macOS系统上,它运行良好。
使用Homebrew:
brew tap microsoft/git
brew install --cask git-credential-manager-core

这对我来说毫无问题。 - basheps

1

我不得不升级我的Git For Windows到2.29.2.2版本。这使得git命令行可以通过浏览器登录,而GitHub现在要求这样做。

在尝试了Windows凭据管理器重置和重新生成个人访问令牌后,我才这样做。但这确实导致GitHub给我发送了这样的电子邮件:

[GitHub] 需要操作-不再支持Git for Windows中的密码验证

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


0
我有一个个人的GitHub账号(Spragucm)和两个非企业级的GitHub组织(HoverDroids和tCubedStudios)。
GitKraken能看到Spragucm和HoverDroids的仓库,但看不到tCubedStudios的。
HoverDroids的第三方应用访问策略是:

enter image description here

tCubedStudios的第三方应用访问政策如下:

enter image description here

注意tCubedStudios没有列出GitKraken,并且组织中没有手动添加该应用程序的选项。
登录/退出GitKraken并不能让我选择和批准另一个组织,卸载/重新安装也不行。
解决方案:
1. 在我的个人帐户(Spragucm)中打开应用程序。

enter image description here

选择GitKraken设置,然后点击组织的授权按钮(图片中的按钮明显是一个糟糕的PS处理,但那就是按钮所在的位置)。

enter image description here

前往tCubedStudios的第三方应用访问政策,并验证现在显示了GitKraken和GitKraken Services。

enter image description here


0

这种情况发生在我使用PHPStorm时。我试图使用这个IDE来提交和推送我的修改,所以当我遇到错误时,我试图在IDE控制台上使用命令行来进行推送。


0

对于IntelliJ IDE用户,请按照以下简单步骤操作:

  1. 进入文件 > 设置 > 版本控制 > Github,通过点击账户然后点击“-”按钮来删除Github账户。
  2. 然后在您的默认浏览器中登录Github.com,然后在我们在第一步打开的同一IDE窗口上单击“+”按钮。然后选择“使用令牌登录”。
  3. 单击生成按钮。
  4. 这将在您的浏览器中打开一个GitHub页面,其中所有权限都已填写。您只需单击页面底部的“生成令牌”即可。然后使用该令牌填充IDE弹出窗口。
  5. 关闭设置窗口并再次推送您的代码。这对我总是有效的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接