Skip to main content

错误:403“无法通过集成访问资源”

由 Dependabot 创建的拉取请求可能会出现此错误,可通过几种不同的方式解决。

在本文中

注意

仅当您看到此错误时,此故障排除文章才相关__Dependabot。 如果在其他 GitHub 产品中看到此错误并难以对其进行故障排除,可以联系 GitHub 支持。 有关详细信息,请参阅“联系 GitHub 支持团队”。

关于此错误

403: Resource not accessible by integration

Dependabot 当它触发工作流运行且工作流将以只读范围运行时,会被视为不受信任。

确认错误原因

如果在 Dependabot 工作流中使用 code scanning ,请调查其使用的范围。

上传code scanning分支的结果通常需要security-events: write权限范围。 但是,当code scanning事件触发操作运行时,pull_request始终允许上传结果。 因此,对于 Dependabot 分支,我们建议使用 pull_request 事件而不是 push 事件。

修复问题

可以推送到默认分支和任何其他重要的长期分支,以及在此组分支上打开的拉取请求:

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

或者,可以在除分支之外 Dependabot 的所有推送上运行:

on:
  push:
    branches-ignore:
      - 'dependabot/**'
  pull_request:

默认分支上的分析仍然失败

CodeQL 分析工作流程 如果在默认分支上的提交仍然失败,则需要检查:

  • 确认 Dependabot 是否编写了提交记录
  • 包含提交的拉取请求是否已使用 squash 和 merge 合并

这种类型的合并提交由 Dependabot 编写,因此,在提交上运行的任何工作流都将具有只读权限。 如果在存储库上启用了code scanningDependabot安全更新或版本更新,建议使用 “创建合并提交策略”在拉取请求上启用自动合并。 这样可以避免由 Dependabot 创建的 squash merge 提交。 有关启用自动合并的详细信息,请参阅“自动合并拉取请求”。