如何在向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
相关产品推荐
相关产品推荐

