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

如何在向develop分支发起PR时触发免费Dependabot扫描?

PR触发依赖扫描的免费解决方案

现有Dependabot配置

已通过dependabot.yml实现定时依赖更新扫描:

version: 2
updates:
  # Enable version updates for npm
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    reviewers:
      - "@XXXXX"
  # Enable version updates for Docker
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
    reviewers:
      - "@XXXX"

需求

当向develop分支发起PR时,自动触发对应分支的依赖扫描,且方案需支持私有仓库免费使用。


方案1:自定义GitHub Actions工作流,使用原生扫描工具

直接利用npm、Docker官方提供的免费扫描命令,在PR触发时执行扫描任务,无需依赖付费Action:

创建.github/workflows/dependency-scan-pr.yml文件:

name: Dependency Scan on PR
on:
  pull_request:
    branches: [ develop ]
    paths:
      - 'package.json'
      - 'package-lock.json'
      - 'Dockerfile'

jobs:
  npm-audit:
    runs-on: ubuntu-latest
    if: contains(github.event.pull_request.changed_files, 'package.json') || contains(github.event.pull_request.changed_files, 'package-lock.json')
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20' # 替换为项目使用的Node.js版本
      - run: npm ci
      - run: npm audit --audit-level=moderate # 可调整为low/high/critical,按需控制扫描严格度

  docker-scan:
    runs-on: ubuntu-latest
    if: contains(github.event.pull_request.changed_files, 'Dockerfile')
    steps:
      - uses: actions/checkout@v4
      - uses: docker/setup-buildx-action@v3
      - run: docker build -t pr-scan-image .
      - run: docker scan --severity medium pr-scan-image # 可调整扫描级别

说明:

  • 仅当PR修改了依赖相关文件时才触发对应扫描,减少冗余运行
  • npm audit和docker scan均为官方免费工具,私有仓库可正常使用
  • 若需要在发现高危漏洞时阻止PR合并,可在扫描命令后添加判断逻辑(比如npm audit --audit-level=critical || exit 1)

方案2:扩展Dependabot配置,启用安全更新扫描

在现有dependabot.yml中添加安全更新规则,让Dependabot在PR引入依赖漏洞时自动触发扫描并发起修复:

修改后的dependabot.yml:

version: 2
updates:
  # 原有npm版本更新配置
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    reviewers:
      - "@XXXXX"
  # 原有Docker版本更新配置
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
    reviewers:
      - "@XXXX"
  # 新增npm安全更新扫描
  - package-ecosystem: "npm"
    directory: "/"
    target-branch: "develop"
    security-updates: true
    reviewers:
      - "@XXXXX"
    open-pull-requests-limit: 10
  # 新增Docker安全更新扫描
  - package-ecosystem: "docker"
    directory: "/"
    target-branch: "develop"
    security-updates: true
    reviewers:
      - "@XXXX"

说明:

  • security-updates: true会让Dependabot监控develop分支及指向它的PR,当检测到依赖漏洞时自动发起修复PR
  • 该功能属于GitHub Dependabot基础服务,私有仓库可免费使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:53:24