SuperAPI AI 工具集

security-runner

安全与审计

查看项目

更新于 10-15 14:04

技能介绍

用途

security-runner 用于对指定仓库执行自动化安全告警修复流水线。它会分类所有处于 open 状态的 Dependabot 告警,对每条告警采取相应动作,并输出结果报告。该技能执行的是 /security-check 所定义的分类框架。

主要能力

  • 通过 GitHub API 分页拉取目标仓库全部 open 状态的 Dependabot 告警,提取包名、生态、清单路径、作用域、严重程度、CVSS 分数、CVE 编号、摘要、已修复版本、受影响版本范围与告警链接。
  • 依据严重程度与可利用性套用决策矩阵,将告警分类为 P0、P1、P2、backlog 或 dismiss。可利用性由 Dependabot 的 scope 字段映射:runtime 视为 network-reachable,非 runtime 且清单路径匹配 test/spec/tests/cypress 时视为 test-only,否则为 dev-only。
  • 对 P0/P1:若已存在对应包的 Dependabot PR,则为其添加 security 与优先级标签;若合并策略为 auto-merge 则启用自动压缩合并,否则标记 ready-to-merge 等待人工合并。若无补丁版本,则创建带升级路径选项的 issue;若有补丁但 Dependabot 未自动创建 PR,则创建跟踪 issue 提示等待计划运行或手动升级。
  • 对 P2 与 backlog:通过共享的 file-finding 辅助脚本写入每周摘要或对已有 issue 评论,不阻塞流程。
  • 对 dismiss:通过 API 将告警状态改为 dismissed,并填写原因(tolerated_risk、inaccurate、not_used、no_bandwidth)与评论。
  • 生成 Markdown 汇总报告,包含扫描告警数、合并策略、各优先级计数与明细、后续步骤。
  • 可选在 Pylot 上下文中将报告 POST 到控制面事件接口。
  • 完成后可输出 Pylot Outcome Marker,报告处置数量或阻塞状态。

使用方式

通过 npx 安装:

npx skills add fellowship-dev/dogfooded-skills/skills/ops/security-runner

运行前需验证 gh 认证与仓库访问权限,并确认 Dependabot 告警端点可访问(需要 security_events 权限范围,否则返回 403)。

脚本以仓库为参数运行,例如 /security-runner $REPO。内部流程包括:Step 0 设置仓库、日期、报告路径、共享 filing 辅助脚本路径与合并策略;Step 1 拉取 open 告警;Step 2 分类;Step 3 按分类执行动作;Step 3b 遍历所有告警并路由;Step 4 在 PR 处理函数内执行合并策略;Step 5 生成汇总报告;Step 6 可选推送报告。

合并策略从 Pylot 控制面的 crew.yml 读取,而非目标仓库。

适用场景

  • 每周定时扫描(示例为周一 05:00)对所有活跃仓库自动巡检。
  • 关键 CVE 披露后对受影响仓库进行定向处置。
  • Snyk PR 或告警激增后,在冲刺开始前清理积压。

限制

  • 依赖 GitHub API 与 Dependabot 告警端点;若令牌缺少 security_events 权限范围或未启用 Dependabot,端点会返回 403。
  • 没有公开的 GitHub API 端点可直接触发 Dependabot 创建 PR,因此有补丁时只能创建跟踪 issue,等待 Dependabot 计划运行或手动升级。
  • 合并策略为 restricted 时不会自动合并,需人工合并。
  • 共享 filing 辅助脚本对非 P0/P1 告警有去重、评论、每周摘要与每次运行最多创建 3 个新 issue 的限制(P0 豁免)。
  • 报告推送与 Outcome Marker 仅在 Pylot 上下文中可用。

相关技能

  • /security-check:本技能执行的分类框架。
  • /deps-runner:非安全依赖更新,采用相同 PR 模式。
  • /entropy-check:可将安全评分纳入领域评级。

维护技能已于 2026-09-14 退役,请直接检查 Dependabot 是否已配置。