CAST 快速入门
本指南将带您在五分钟内为项目仓库添加一套生产级 DevSecOps 流水线。
前提条件
- 已启用 GitHub Actions 的 GitHub 仓库
- Python 3.9+(仅在使用
castCLI 时需要)
无需任何外部账号、令牌或 SaaS 订阅。
第一步 — 安装 CLI
pip install castops
验证安装是否成功:
cast --help
第二步 — 初始化流水线
进入项目根目录后运行:
cast init
CAST 会自动检测您的项目类型并生成工作流文件:
╭──────────────────────────────────────────────────╮
│ CAST — CI/CD Automation & Security Toolkit │
╰──────────────────────────────────────────────────╯
Detected project type: python
Downloading template... done
✓ Created .github/workflows/devsecops.yml
Commit and push to activate your DevSecOps pipeline:
git add .github/workflows/devsecops.yml
git commit -m 'ci: add CAST DevSecOps pipeline'
git push
若自动检测失败(未找到 pyproject.toml、requirements.txt 等),请手动指定项目类型:
cast init --type python
第三步 — 提交并推送
git add .github/workflows/devsecops.yml
git commit -m "ci: add CAST DevSecOps pipeline"
git push
GitHub Actions 会立即识别该工作流并运行您的首次流水线。
第四步 — 查看首次运行结果
- 进入您在 GitHub 上的仓库
- 点击 Actions 标签页
- 您应该能看到 "CAST DevSecOps" 正在运行
该流水线包含六个作业:
| 作业 | 工具 | 预期结果 |
|---|---|---|
| 密钥检测 | Gitleaks | Git 历史中无密钥则通过 |
| SAST | Semgrep | 使用开源规则通过;配置云端令牌可获取更多规则 |
| SCA | pip-audit | 依赖项无 CVE 则通过 |
| 容器安全 | Trivy | 无 Dockerfile 时跳过 |
| 代码质量 | Ruff | 代码符合规范则通过 |
| 安全门禁 | 内置 | 所有关键检查通过则放行 |
第五步 — 查看安全发现
Semgrep 和 Trivy 的所有发现均会上传至 GitHub 的 Security 标签页:
- 进入仓库 → Security 标签页
- 点击 "Code scanning alerts"
- 审查发现的问题
新发现的问题也会在后续 Pull Request 中以内联注释的形式呈现。
第六步 — 启用门禁保护(可选但推荐)
为防止安全门禁失败的 Pull Request 被合并:
- 进入 Settings → Branches
- 点击 "Add branch protection rule"
- 将 Branch name pattern 设置为
main - 启用 "Require status checks to pass before merging"
- 搜索并选择 "Security Gate"
- 保存规则
此后,任何存在安全问题的 Pull Request 将被阻止合并。
可选:启用 Semgrep Cloud
获取更多安全规则并使用集中式发现看板:
- 在 semgrep.dev 注册账号(提供免费套餐)
- 进入 Settings → Tokens,创建一个 CI 令牌
- 在 GitHub 仓库中,进入 Settings → Secrets and variables → Actions
- 添加名为
SEMGREP_APP_TOKEN的 Secret,值为您的令牌
下次运行时,流水线将自动使用您的云端令牌。
手动安装(无需 CLI)
如果您不想安装 CLI,可以直接复制模板:
# 创建工作流目录
mkdir -p .github/workflows
# 下载 Python 模板
curl -o .github/workflows/devsecops.yml \
https://raw.githubusercontent.com/castops/cast/main/src/cast_cli/templates/python/devsecops.yml
# 提交并推送
git add .github/workflows/devsecops.yml
git commit -m "ci: add CAST DevSecOps pipeline"
git push
后续步骤
- 阅读 流水线参考,了解每个作业的完整技术说明、如何自定义阈值以及如何抑制误报
- 阅读 CLI 参考,了解所有可用选项
- 参阅 CONTRIBUTING.md,了解如何为新语言栈添加支持