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

如何配置GitHub Action仅响应来自指定分支的Pull Request?

正确配置GitHub Action仅触发来自指定分支的Pull Request

你原来的配置存在两个关键问题:

  1. 混淆了push和pull_request事件:push事件是代码推送到分支时触发,和Pull Request无关,也不支持types: pull_request以及from字段;
  2. 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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:52:40