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

是否可开发GitHub bot实现pull request自动过滤,仅修改JS文件的PR有效

可行性结论

该需求完全可以实现,无需部署独立的Bot服务,直接使用GitHub官方提供的Actions能力即可完成自动校验过滤。

实现思路

你可以通过配置GitHub工作流,在每次PR创建、更新时自动扫描本次提交的改动文件,按照规则校验:

  • 若所有改动文件均为.js后缀的JS文件,判定PR合法,允许走后续合并流程
  • 若存在任意非.js后缀的文件改动,判定PR非法,直接阻断合并,同时可自动添加评论提示提交规则不符
核心配置步骤
  • 在仓库根目录创建.github/workflows/pr-validate.yml文件,作为自动校验的工作流配置
  • 配置工作流触发条件为pull_request事件的opened、synchronize类型,仅PR新增/更新时触发校验
  • 添加文件改动扫描逻辑,过滤所有非JS后缀的改动文件,若存在这类文件则直接返回校验失败状态
  • 在仓库的分支保护设置中,开启「状态检查必须通过才可合并」规则,绑定上述校验工作流,即可实现全自动化过滤
校验逻辑参考代码
name: PR Valid Check
on:
  pull_request:
    types: [opened, synchronize]
jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Scan non-JS changed files
        id: file-check
        run: |
          non_js_files=$(git diff --name-only origin/${{ github.base_ref }} ${{ github.sha }} | grep -v "\.js$" || true)
          if [ -n "$non_js_files" ]; then
            echo "has_invalid_change=true" >> $GITHUB_OUTPUT
          else
            echo "has_invalid_change=false" >> $GITHUB_OUTPUT
          fi
      - name: Reject invalid PR
        if: steps.file-check.outputs.has_invalid_change == 'true'
        run: |
          echo "ERROR: Only JS file modifications are allowed, this PR contains non-JS file changes"
          exit 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:12:00