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

GitHub Actions中触发分支删除事件后,能否获取被删分支名称?

在GitHub Actions中获取被删除分支的名称

当然可以获取到被删除分支的名称!我之前也遇到过类似的清理部署资源的需求,刚好可以给你梳理清楚具体操作:

核心思路:利用GitHub事件上下文变量

当你通过**分支删除事件(delete event)**触发GitHub Actions时,虽然GITHUB_REF会指向仓库的默认分支,但GitHub会在事件上下文里提供专门的变量来存储被删除分支的信息,完全不需要依赖GITHUB_REF。

具体步骤

  1. 配置工作流触发条件
    首先要确保你的工作流是由分支删除事件触发的,在on字段里指定delete事件并包含分支范围:

    on:
      delete:
        branches:
          - '*' # 匹配所有分支,也可以指定特定分支前缀,比如feature/*
    
  2. 获取被删除分支的名称
    在工作流的步骤中,直接使用${{ github.event.ref_name }}这个变量就能拿到被删除分支的纯名称(比如my-feature-branch,而不是完整的refs/heads/my-feature-branch)。如果需要完整的引用路径,可以用${{ github.event.ref }}。

    举个完整的工作流示例,用来清理对应分支的部署资源:

    jobs:
      cleanup-deployment:
        runs-on: ubuntu-latest
        steps:
          - name: 输出被删除分支名称
            run: echo "即将清理分支 ${{ github.event.ref_name }} 的部署资源"
          
          - name: 执行清理脚本
            run: |
              # 这里替换成你实际的清理逻辑,用分支名作为标识
              ./cleanup-resources.sh --branch "${{ github.event.ref_name }}"
    

额外说明

  • 如果你是通过git push origin :<branch-name>这种推送操作删除分支,这个动作同样会触发delete事件,上面的配置也能正常捕获到被删除的分支名。
  • 注意确保你的工作流拥有足够的权限执行清理操作(比如访问云资源的密钥、仓库权限等),可以通过GitHub Secrets来管理敏感信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 22:32:27