我正在尝试从 Github 工作流程中的特定提交 SHA 创建 git 分支。
看起来像这样:
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
git push
失败并出现以下 错误:
! [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 分支命令中删除
$env:commit_sha
arg 一切正常。
我不明白从提交分支有什么问题以及为什么它说我正在尝试更新工作流程。
如果有人能向我解释为什么会发生这种情况,我将不胜感激。
错误:
refusing to allow a GitHub App to create or update workflow `.github/workflows/Create_Release.yaml`
发生 是因为您的 powershell 正在尝试执行新分支的签出。这显然会清理你的工作文件夹。 如果您的目标是创建分支并将其推送到服务器,您可以避免将其签出。 做:
git push origin $($env:commit_sha):refs/heads/$releaseBranch