Github Workflow提交代码返回403权限错误求助
解决Github Workflow推送代码403权限错误
核心问题分析
出现403错误的直接原因是Workflow使用的GITHUB_TOKEN没有仓库内容的写入权限,当前配置里permissions的contents设为read,无法执行推送操作。
具体修复步骤
1. 修改Workflow的权限配置
将build-package任务中的contents权限从read改为write:
permissions: contents: write # 此处修改为write id-token: write pull-requests: write issues: write repository-projects: write deployments: write packages: write
2. 确保Checkout步骤正确传递权限
actions/checkout@v3默认会携带GITHUB_TOKEN,可显式配置凭证持久化避免潜在问题:
- uses: actions/checkout@v3 with: persist-credentials: true # 保持凭证持久化,确保后续git操作能调用token
3. 完善Git推送命令(可选)
为避免循环触发Workflow或分支推送歧义,可优化Commit version步骤的命令:
git config --global user.email "github-actions[bot]@users.noreply.github.com" git config --global user.name "github-actions[bot]" git commit -m "[skip ci] Bump version" setup.py # 添加[skip ci]跳过新一轮Workflow触发 git push origin HEAD:main # 明确指定推送目标分支(如main)
4. 检查仓库全局权限设置
若上述修改后仍报错,进入仓库Settings > Actions > General页面确认:
- Workflow permissions设置为
Read and write permissions - 按需勾选
Allow GitHub Actions to create and approve pull requests
验证修复
重新触发Workflow,此时GITHUB_TOKEN已拥有内容写入权限,可成功推送setup.py的版本变更。
内容的提问来源于stack exchange,提问作者Kevin Rump
相关产品推荐
相关产品推荐

