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

关闭未合并PR时GitHub Workflow未触发,需删除指定前缀分支

修复未触发的PR关闭自动删分支Workflow

你的Workflow未触发,核心问题大概率是语法错误,再加上一些冗余配置,以下是问题分析和修复方案:

问题点拆解

  1. HTML转义字符导致语法错误:原配置中if条件里的&&是HTML转义后的符号,实际YAML文件里必须直接写&&,否则GitHub会解析失败,直接跳过Workflow执行。
  2. 冗余条件判断:on字段已经限定了触发事件为pull_request closed,所以job的if里不需要重复判断github.event_name和github.event.action,完全多余。
  3. 分支提取步骤冗余:在pull_request事件上下文里,github.head_ref直接就是PR的源分支,不需要额外写脚本提取。

修复后的完整配置

name: Delete branch when PR not merged

permissions:
  contents: write # 仅保留删除分支必需的权限,id-token无需设置

on:
  pull_request:
    types: [closed]

jobs:
  delete-unmerged-branch:
    if: github.event.pull_request.merged == false
    runs-on: ubuntu-latest
    steps:
      - name: Delete branch with ID- prefix
        uses: dawidd6/action-delete-branch@v3
        if: contains(github.head_ref, 'ID-') || contains(github.head_ref, 'id-')
        with:
          github_token: ${{ github.token }}
          branches: ${{ github.head_ref }}

额外注意事项

  • 要删除的分支不能有分支保护规则(比如设置了禁止删除),否则Action执行会失败。
  • 测试时必须关闭未合并的PR,合并后关闭的PR不会触发这个job。
  • 确保仓库允许GitHub Actions修改分支权限,contents: write权限已经满足删除分支的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:27:44