跳至主要内容

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

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

注意

此故障排除文章**仅**适用于您在使用 Dependabot 时遇到此错误的情况。如果您在使用其他 GitHub 产品时遇到此错误并难以进行故障排除,您可以联系 GitHub 支持。有关更多信息,请参阅“联系 GitHub 支持”。

关于此错误

403: Resource not accessible by integration

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

确认错误原因

如果您在代码扫描工作流中使用 Dependabot,请调查其使用的范围。

将代码扫描结果上传到分支通常需要security-events: write范围。但是,当pull_request事件触发操作运行时,代码扫描始终允许上传结果。这就是为什么对于 Dependabot 分支,我们建议您使用pull_request事件而不是push事件。

解决问题

您可以在对默认分支和任何其他重要的长期运行分支进行推送以及针对此分支集打开的拉取请求上运行。

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

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

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

有关编辑 CodeQL 工作流文件的更多信息,请参阅“自定义代码扫描的高级设置”。

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

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

  • Dependabot 是否是提交的作者
  • 包含该提交的拉取请求是否已使用@dependabot squash and merge合并

此类型的合并提交由 Dependabot 编写,因此,在提交上运行的任何工作流都将具有只读权限。如果您在仓库中启用了代码扫描和 Dependabot 安全更新或版本更新,我们建议您避免使用 Dependabot 的@dependabot squash and merge命令。相反,您可以为仓库启用自动合并。这意味着当满足所有必需的审查并通过状态检查后,拉取请求将自动合并。有关启用自动合并的更多信息,请参阅“自动合并拉取请求”。