注意
此故障排除文章**仅**适用于您在使用 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
命令。相反,您可以为仓库启用自动合并。这意味着当满足所有必需的审查并通过状态检查后,拉取请求将自动合并。有关启用自动合并的更多信息,请参阅“自动合并拉取请求”。