Skip to content

feat(ci): add dependabot, codeql and dependency review gates - #7

Merged
KDB-Wind merged 1 commit into
mainfrom
feat/supply-chain-gate
Aug 11, 2026
Merged

feat(ci): add dependabot, codeql and dependency review gates#7
KDB-Wind merged 1 commit into
mainfrom
feat/supply-chain-gate

Conversation

@KDB-Wind

Copy link
Copy Markdown
Owner

问题

fork 仓库缺少供应链门禁:依赖更新无自动化、代码无静态安全扫描、PR 引入的依赖无审查。本 PR 落地供应链门禁第一批。

改动

新增 3 个文件:

  1. .github/dependabot.yml:Dependabot 每周一 03:00(Asia/Shanghai)检查 Maven(根目录)与 npm(frontend)依赖更新,open-pull-requests-limit: 10
    • 用 groups 将 minor/patch 聚合为单 PR(maven-minor-patch / npm-minor-patchapplies-to: version-updates),减少每周 PR 数量;安全更新不走 group,保持单独 PR 以突出紧急度。
  2. .github/workflows/codeql.yml:CodeQL 静态安全扫描。push main + pull_request(branches: [main])+ 每周 cron。
    • 语言矩阵:java-kotlin(autobuild 走 ./mvnw,init 前用 setup-java@v4 显式提供 temurin 17 避免 JDK 不匹配)与 javascript-typescript(build-mode: none,前端无需构建)。
    • queries 选 security-and-quality:在默认规则集上叠加 security-extended 与质量规则,覆盖更全的漏洞面;代价是分析耗时与需人工复核的告警略多,符合本批"安全加固"目标。
    • timeout-minutes: 60(Java 编译较久);permissions: contents: read / security-events: write / actions: read
  3. .github/workflows/dependency-review.yml:依赖审查,pull_request 全量触发,fail-on-severity: high(命中 high 及以上漏洞即 PR 失败)。Maven pom.xml 与 frontend/package-lock.json 由 action 自动发现。

Vulnerability alerts 状态

已通过 PUT /repos/KDB-Wind/ragent/vulnerability-alerts 启用(返回 204),GET 确认 204。启用后 GitHub 报告默认分支现存 58 个漏洞(1 critical / 23 high / 32 moderate / 2 low),后续由 Dependabot 安全更新自动消化。dependency graph 对 public 仓库自动启用。

验证方式

  • 本地:npx --yes yaml-lint 三个 yaml 全部通过;actionlint v1.7.12 对两个 workflow 无错误无警告(退出码 0)。
  • CI:本 PR 直接跑 backend-maven、frontend-build-lint、dependency-review、CodeQL(java-kotlin + javascript-typescript 双语言)。

非目标(第二批)

  • SCA(软件成分分析,如 OWASP Dependency-Check / Trivy)
  • SBOM 生成与镜像漏洞扫描

风险说明

  • Dependabot 首次调度在配置合入后由 GitHub 侧调度,存在数小时到一天的延迟。
  • CodeQL 在 PR 上新增一个较慢的检查(Java autobuild 编译 + 分析),PR 合并耗时增加。
  • security-and-quality 可能产生少量需人工判定的告警,属预期成本。

@KDB-Wind
KDB-Wind merged commit 9cab4cf into main Aug 11, 2026
6 checks passed
@KDB-Wind
KDB-Wind deleted the feat/supply-chain-gate branch August 11, 2026 12:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant