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

GitHub Actions问题:workflow_dispatch与pull_request组合触发异常自动执行

解决GitHub Actions中workflow_dispatch与pull_request结合时自动触发的问题

你当前的工作流配置同时监听了pull_request(opened类型)和workflow_dispatch事件,而GitHub Actions的on字段中多个事件是逻辑或的关系——只要任意一个事件的触发条件满足,工作流就会自动运行。所以当有新PR打开时,pull_request事件触发,工作流就直接启动了,和workflow_dispatch的手动触发逻辑无关。

场景1:仅允许手动触发工作流,可针对指定PR运行

直接移除pull_request事件,只保留workflow_dispatch,并添加输入参数让你手动指定要处理的PR编号,就能精准拉取对应PR的代码:

name: Manual Workflow on PR
on:
  workflow_dispatch:
    inputs:
      pr_number:
        description: '要处理的Pull Request编号'
        required: true
        type: number

jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
      - name: 拉取PR代码
        uses: actions/checkout@v4
        with:
          ref: refs/pull/${{ inputs.pr_number }}/head
      
      # ... 你的后续构建/测试步骤

触发方式:在仓库的Actions页面找到该工作流,点击"Run workflow",输入目标PR的编号即可。

场景2:PR打开后需手动审批才触发工作流

如果希望PR打开时工作流进入等待状态,需要手动确认后再运行,可以保留pull_request事件,结合环境保护规则实现手动审批:

  1. 修改工作流配置,指定需要手动审批的环境:
name: Manual Approval Workflow on PR
on:
  pull_request:
    types:
      - opened

jobs:
  build:
    runs-on: ubuntu-latest
    environment:
      name: pr-approval # 自定义环境名称
    steps:
      - name: 拉取代码
        uses: actions/checkout@v4
      
      # ... 你的后续步骤
  1. 进入仓库的Settings -> Environments页面,创建名为pr-approval的环境,开启Required reviewers,添加需要审批的人员/团队。

这样当PR打开时,工作流会自动触发但进入等待状态,只有指定人员审批通过后,才会执行后续步骤。

内容的提问来源于stack exchange,提问作者Mehdi Ben Hamida

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 13:43:20