如何为github-actions[bot]授予Git权限以部署Blazor到GitHub Pages
解决GitHub Action部署Blazor WASM到GitHub Pages的403权限问题
问题核心
github-actions[bot]没有推送gh-pages分支的权限,默认的GITHUB_TOKEN权限不足导致403错误。
解决方案
1. 为Workflow添加明确的写权限
默认情况下,GITHUB_TOKEN在push触发的Workflow中仅拥有读权限,需要显式赋予内容写权限。修改你的gh-pages.yml,在jobs.deploy下添加permissions配置:
jobs: deploy: runs-on: ubuntu-latest # 添加权限配置 permissions: contents: write steps: # 原有步骤保持不变 - uses: actions/checkout@v4 - name: Setup .NET Core uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - name: Publish run: dotnet publish MyBlazorApp/MyBlazorApp.sln -c:Release -o:publish -p:GHPages=true - name: Deploy uses: peaceiris/actions-gh-pages@v4.0.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: publish/wwwroot force_orphan: true
2. 检查仓库GitHub Pages配置
- 进入仓库的Settings > Pages页面
- 确认Source选项已选择
gh-pages分支(若该分支尚未存在,Action会自动创建,但需权限允许) - 确保分支访问设置匹配仓库类型(公开仓库默认配置即可,私有仓库需对应调整)
3. 组织仓库额外配置(若适用)
如果仓库属于组织,需检查组织级别的Action权限:
- 进入组织的Settings > Actions > General页面
- 在"Workflow permissions"区域,选择Read and write permissions,确保允许仓库Workflow拥有写权限
4. 备选方案:使用Personal Access Token(PAT)
若上述方法无效,可使用PAT替代默认GITHUB_TOKEN:
- 创建PAT,勾选
repo权限(完整仓库访问权限) - 进入仓库的Settings > Secrets and variables > Actions,添加新密钥
GH_PAT并填入PAT值 - 修改Workflow的Deploy步骤:
- name: Deploy uses: peaceiris/actions-gh-pages@v4.0.0 with: github_token: ${{ secrets.GH_PAT }} publish_dir: publish/wwwroot force_orphan: true
内容的提问来源于stack exchange,提问作者Maurice Klimek
相关产品推荐
相关产品推荐

