这个项目能做什么

Central Cyclone 是一个集中式的软件物料清单(SBOM)生成服务,旨在简化跨多个仓库的依赖跟踪。它基于 `cdxgen` 工具,允许用户从单个 JSON 配置文件中配置和分析多个目标和仓库,从而避免为每个项目创建单独的管道。这种方法类似于 Renovate 管理多个仓库的方式。 主要功能包括: - **集中式配置**:在单个配置文件中管理所有 SBOM 目标和设置。配置包含 DependencyTrack 连接详细信息、带有特定目标(例如 node、java)的仓库 URL,以及用于未来 GitOps 功能的可选应用程序定义。 - **DependencyTrack 集成**:将生成的 SBOM 直接上传到 DependencyTrack 实例。它需要 `DEPENDENCYTRACK_API_KEY` 环境变量和强制性的 DependencyTrack 配置。 - **CLI 命令**: - `analyze`:克隆并分析配置的仓库。结果可以保存到本地或直接上传。 - `upload`:上传之前生成的 SBOM 文件,适用于受限网络环境中的两阶段管道。 - `dt projects sync`:根据配置中的应用程序定义创建和同步 DependencyTrack 项目。 - **私有仓库支持**:支持使用访问令牌从 GitHub 和 Azure DevOps 克隆私有仓库。GitHub 需要具有只读内容权限的细粒度个人访问令牌,而 Azure DevOps 需要具有代码读取权限的 PAT。 - **Docker 支持**:提供官方 Docker 镜像,其中包含必要的依赖项,例如 `git` 和 `cdxgen`。用户可以挂载他们的配置文件和工作文件夹,以便轻松运行该工具。 - **GitOps 模式**:目前处于 alpha 阶段,该功能旨在监控 GitOps 仓库并自动为部署的版本创建 SBOM。 该工具由配置驱动,通过目标中的 `directory` 属性支持各种编程语言和单体仓库结构。它专为自动化和在 CI/CD 管道中的易用性而设计。