如何配置GitHub Action仅响应来自指定分支的Pull Request?
正确配置GitHub Action仅触发来自指定分支的Pull Request
你原来的配置存在两个关键问题:
- 混淆了
push和pull_request事件:push事件是代码推送到分支时触发,和Pull Request无关,也不支持types: pull_request以及from字段; - GitHub Action的事件配置里没有
from这个原生字段,要指定PR的源分支得用head参数。
根据你的需求,分两种场景给出正确配置:
场景1:PR打开/同步/重新打开时触发(源分支为dev,目标分支为main)
当有人从dev分支向main分支发起PR,或者PR内容被同步、重新打开时,触发Action:
on: pull_request: # 指定触发时机:打开、同步、重新打开PR types: [opened, synchronize, reopened] # PR的目标分支(base分支)是main branches: [main] # PR的源分支(head分支)是dev head: [dev]
场景2:仅当PR合并到main时触发(源分支为dev)
如果只需要在dev分支的PR被合并到main时触发Action,配置如下:
on: pull_request: # PR关闭时触发(合并属于关闭的一种情况) types: [closed] branches: [main] head: [dev] jobs: your-job-name: runs-on: ubuntu-latest # 额外判断:只有PR被合并时才执行任务 if: github.event.pull_request.merged == true steps: - name: 拉取代码 uses: actions/checkout@v4 # 在这里添加你的任务步骤,比如构建、测试等
关键参数说明
branches:在pull_request事件中,指定的是PR的目标分支(即PR要合并到的分支);head:指定的是PR的源分支(即发起PR的分支);types:控制PR在哪些状态变化时触发Action,可选值包括opened、synchronize、reopened、closed等,可根据需求组合。
内容的提问来源于stack exchange,提问作者pcace
相关产品推荐
相关产品推荐

