如何在GitHub Workflow中用gh清除缓存?解决403权限报错
解决GitHub Workflow清除缓存时的403权限问题
问题根源
你遇到的Resource not accessible by integration报错,本质是Workflow默认使用的GITHUB_TOKEN权限不足。默认情况下,这个token只有仓库的只读权限,而执行gh cache delete --all需要对GitHub Actions缓存的写入/删除权限。
解决方案
直接在Workflow配置中显式声明所需权限即可,无需额外复杂操作:
- 修改你的Workflow文件,在
jobs下的任务中添加permissions字段,指定actions: write权限:
name: 定期清除GitHub缓存 on: schedule: - cron: '0 0 * * 0' # 每周日凌晨自动执行,可按需调整 cron 表达式 workflow_dispatch: # 保留手动触发选项,方便测试 jobs: clear-cache: runs-on: ubuntu-latest # 声明所需权限,覆盖默认的只读权限 permissions: actions: write steps: # 不需要 actions/checkout 步骤,缓存操作无需克隆仓库代码 - name: 删除所有缓存 run: gh cache delete --all
- 提交并推送修改后的Workflow文件到仓库,之后无论是定时触发还是手动触发,都能正常执行缓存清理操作。
额外说明
- GitHub官方托管的Runner已经预装了
ghCLI,无需手动安装; actions: write权限足够覆盖缓存删除操作,不需要设置write-all这类宽泛权限;- 该方案适用于免费版组织下的私有仓库,权限配置不受组织版本限制。
内容的提问来源于stack exchange,提问作者roskakori
相关产品推荐
相关产品推荐

