如何通过GitHub Actions修改仓库默认分支?解决403权限问题
GitHub Actions修改仓库默认分支报403的问题解决
操作是否支持?
支持通过GitHub Actions修改仓库默认分支,但默认的GITHUB_TOKEN没有足够权限执行该操作,这是触发HTTP 403: Resource not accessible by integration错误的核心原因。
解决步骤
默认的GITHUB_TOKEN仅具备仓库读写权限,而修改默认分支属于仓库设置变更,需要管理员级别的权限。解决方法是使用带仓库管理权限的个人访问令牌(PAT)替代默认令牌:
生成带权限的PAT
- 进入GitHub个人设置的「Developer settings」→「Personal access tokens」页面
- 创建新令牌,勾选
repo权限组(包含仓库管理所需的全部权限) - 保存生成的令牌(仅显示一次,务必妥善记录)
将PAT存入仓库Secrets
- 打开目标仓库的「Settings」→「Secrets and variables」→「Actions」
- 新建Secret,命名为
REPO_ADMIN_TOKEN,值填入刚才生成的PAT
更新工作流配置
- 将工作流中
GH_TOKEN的取值从${{ secrets.GITHUB_TOKEN }}替换为${{ secrets.REPO_ADMIN_TOKEN }} - 保留原
permissions: write-all配置(或明确设置admin: write以确保权限覆盖)
- 将工作流中
修改后的关键步骤代码示例:
- name: Create PR run: | yarn yarn bump:minor VERSION=$(jq -r .version package.json) BRANCH=release/$VERSION git checkout -b $BRANCH git commit -am "Release $VERSION" git push --set-upstream origin $BRANCH gh pr create --title "Release $VERSION" --body "" --head $BRANCH --base main gh repo edit --default-branch $BRANCH env: GH_TOKEN: ${{ secrets.REPO_ADMIN_TOKEN }}
额外提示
- 若你的流程需要在PR合并后再修改默认分支,建议将工作流触发条件改为
pull_request_closed并判断PR是否已合并,避免提前修改分支影响正常开发 - PAT拥有较高权限,需妥善保管,勿随意泄露
内容的提问来源于stack exchange,提问作者Gustavo Mendonça
相关产品推荐
相关产品推荐

