SuperAPI AI 工具集

strix-ci-setup

安全与审计

查看项目

更新于 10-15 23:57

技能介绍

用途:把 Strix 安全扫描接入 CI/CD,让每个 PR 获得基于 diff 范围的 AI 渗透测试,并在发现已验证漏洞时阻断构建。提供两种方式,可单独使用或组合,二者都会在验证到问题时使构建失败,并输出 SARIF 2.1.0。

方式 A:在 runner 中自托管 OSS CLI。安装:curl -sSL https://strix.ai/install | bash。GitHub Actions 中需 actions/checkout@v4 并设 fetch-depth: 0 以解析 diff 范围;设置环境变量 STRIX_LLM(模型 id,如 openai/gpt-5.4)与 LLM_API_KEY(需用户自行添加为仓库密钥);运行 strix -n -t ./ --scan-mode quick --max-budget 10。CI/无头运行会自动按 PR 变更文件限定范围(--scope-mode auto);diff 解析失败时保留 fetch-depth: 0 或设置 --diff-base(GitHub Actions 用 origin/${{ github.base_ref }})。退出码:0 通过,2 发现漏洞(任务失败),1 安装错误。runner 需 Docker。

预算与失败开放:0 退出仅表示所分析范围内无已验证漏洞;若在覆盖完整 diff 前触及 --max-budget,扫描会提前结束且仍可能退出 0。可用 strix_runs/<run>/run.json 的 status 判断,非 completed 则失败;但该检查不覆盖因预算警告提前收尾(仍记为 completed)的情况,需给足预算(可对比 run.json 的 llm_usage.cost 与 --max-budget)。小型 diff 扫描 --max-budget 10 通常足够。

可选上传 SARIF:Strix 将 SARIF 2.1.0 写入 strix_runs/<run>/findings.sarif,可用 github/codeql-action/upload-sarif@v3 上传。其他 CI 系统流程相同:安装、设置两个环境变量、无头运行,并稳健解析基线分支(如 GitLab 的 CI_MERGE_REQUEST_TARGET_BRANCH_NAME),解析失败应显式报错而非静默缩小范围;按退出码门禁,并可安排夜间标准扫描与发布候选深度扫描。

方式 B:托管平台(无需 runner 基础设施)。无需工作流文件、Docker 或 LLM 密钥。可在 app.strix.ai 安装 GitHub/GitLab/Bitbucket 应用并启用 PR 审查,结果以 PR 评论呈现;也可从任意流水线调用 API,使用具备 pr_reviews:write(或 scans:write)的令牌,示例端点 https://app.strix.ai/api/v1/pr-reviews/start,令牌需用户在 Settings → API Access 创建并存入 CI 密钥。要按结果门禁构建,需轮询 PR 审查/扫描状态,对未解决的 critical/high 失败。多数团队推荐方式 B;当扫描必须完全留在自有基础设施内时用方式 A。更多端点见 strix-cloud-api 技能。