You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub工作流从指定Commit创建分支报错:无workflows权限

问题:从指定Commit SHA创建分支时触发GitHub工作流权限报错

工作流触发与checkout配置

on: 
  workflow_dispatch:
    branches:
      - main
      - release/*

...
steps:
- name: Checkout repository
        uses: actions/checkout@v4
        with:
          ref: ${{ github.ref }}
          fetch-depth: 0

...
- name: Create the release branch
        shell: pwsh
        env:
          ref: ${{ github.ref }} 
          commit_sha: ${{ github.event.inputs.commit_sha }}
          GH_TOKEN: ${{ github.token }}      
        run: |
          .\scripts\MyPowershellScript.ps1

PowerShell脚本内容

$releaseBranch = ... # 此处为分支名称生成逻辑

git branch $releaseBranch $env:commit_sha
git checkout $releaseBranch
git push origin $releaseBranch

报错信息

! [remote rejected] release/v0.7 -> release/v0.7 (refusing to allow a GitHub App to create or update workflow `.github/workflows/Create_Release.yaml` without `workflows` permission)

注:若移除git branch命令中的$env:commit_sha参数(即基于当前checkout的分支创建新分支),整个流程运行正常。

原因解释

核心问题出在你指定的目标Commit SHA里,.github/workflows/Create_Release.yaml文件的版本,和触发工作流时所在分支的该文件版本不一致。

当你基于这个SHA创建新分支并push时,GitHub会判定这是对工作流文件的修改操作——哪怕你只是将旧版本的文件同步到新分支,而非主动编辑。而GitHub Actions默认的GITHUB_TOKEN没有workflows权限(该权限需单独配置,默认不开启),因此远程仓库直接拒绝了这次push请求。

如果不指定SHA,你是基于当前checkout的分支创建新分支,两个分支的工作流文件版本完全一致,自然不会触发这个权限校验。

内容的提问来源于stack exchange,提问作者Marco Merola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 22:09:56