oss-review-toolkit/ort
GitHub: oss-review-toolkit/ort
开源软件合规自动化工具套件,提供从依赖分析、许可证扫描、漏洞查询到策略评估的完整流水线,帮助企业高效管理软件供应链的合规与安全风险。
Stars: 1949 | Forks: 374

[][2]
[][4] [][6] [][8]
[][10] [][12] [][14]
# 简介
OSS Review Toolkit (ORT) 是一个 FOSS 策略自动化和编排工具包,您可以使用它以战略性、安全且高效的方式管理您的(开源)软件依赖项。
您可以使用它来:
* 为您的软件项目生成 CycloneDX、SPDX SBOM 或自定义 FOSS 属性文档
* 使用基于风险的 Policy as Code 自动化您的 FOSS 策略,对您的软件项目及其依赖项执行许可、安全漏洞、InnerSource 和工程标准检查
* 为您的软件项目及其依赖项创建源代码归档,以符合特定许可证的要求,或者作为互联网并非永恒的预防措施,拥有您自己的副本
* 使用 InnerSource 或在 FOSS 社区的帮助下,自行更正包元数据或许可证发现结果
ORT 可以作为库使用(用于编程用途),通过命令行界面使用(用于脚本用途),或通过其 CI 集成使用。
它由以下工具组成,这些工具可以组合成一个*高度可定制*的管道:
* [*Analyzer*](https://oss-review-toolkit.org/ort/docs/tools/analyzer):
确定项目及其元数据的依赖项,抽象化实际使用的包管理器或构建系统。
* [*Downloader*](https://oss-review-toolkit.org/ort/docs/tools/downloader):
获取项目及其依赖项的所有源代码,抽象化用于检索源代码的版本控制系统 (VCS) 或其他方式。
* [*Scanner*](https://oss-review-toolkit.org/ort/docs/tools/scanner):
使用配置的源代码扫描器检测许可证/版权发现,抽象化扫描器的类型。
* [*Advisor*](https://oss-review-toolkit.org/ort/docs/tools/advisor):
从配置的漏洞数据服务检索已使用依赖项的安全公告。
* [*Evaluator*](https://oss-review-toolkit.org/ort/docs/tools/evaluator):
根据前面阶段收集的数据评估自定义策略规则和自定义许可证分类,并返回策略违规列表,例如标记许可证发现。
* [*Reporter*](https://oss-review-toolkit.org/ort/docs/tools/reporter):
以各种格式(如可视化报告、开源声明或物料清单 (BOM))呈现结果,以便轻松识别依赖项、许可证、版权或策略规则违规。
* *Notifier*:
通过不同渠道(如[电子邮件](./examples/example.notifications.kts)和/或 JIRA 工单)发送结果通知。
另请参阅有助于运行 ORT 的[相关工具列表](https://oss-review-toolkit.org/ort/docs/related-tools)。
## 文档
有关详细信息,请参阅 [ORT 网站](https://oss-review-toolkit.org/ort/)上的文档。
# 安装
## 系统要求
[核心开发团队](https://github.com/orgs/oss-review-toolkit/people)在 Linux、Windows 和 macOS 上持续使用 ORT,因此这些操作系统被认为得到了良好的支持。
要运行 ORT 二进制文件(另请参阅[从二进制文件安装](#from-binaries)),至少需要 Java 21。
内存和 CPU 要求取决于要分析/扫描的项目的大小和类型,但一般建议将 Java 配置为具有 8 GiB 内存,并使用至少具有 4 个核心的 CPU。
```
# 这将为 Java Virtual Machine 分配 8GB 内存。
export JAVA_OPTS="$JAVA_OPTS -Xmx8g"
```
如果 ORT 需要外部工具来分析项目,这些工具将由 `ort requirements` 命令列出。
如果包管理器未在此处列出,则对其支持已直接集成到 ORT 中,不需要安装任何外部工具。
## 从二进制文件
### CLI 分发包
前往 [releases](https://github.com/oss-review-toolkit/ort/releases) 页面。
从您选择的版本的 "Assets" 部分下载所需类型的分发包归档文件。
通常 Windows 使用 `.zip`,其他情况使用 `.tgz`;但归档文件的内容是相同的。
`ort-*` 归档文件包含 [ORT main](./cli/) 分发包,而 `orth-*` 归档文件包含 [ORT helper](./cli-helper/) 分发包。
将归档文件解压到安装目录。
运行 ORT 的脚本分别位于 `bin/ort` 和 `bin\ort.bat`,或 `bin/orth` 和 `bin\orth.bat`。
### Docker 分发版
除了 CLI 之外,ORT 还作为 Docker 镜像分发,其中包含 ORT 所需的所有工具(请参阅 `ort requirements` 命令)。
要从该镜像的最新版本运行 ORT(如果需要将被下载),请使用:
```
docker run ghcr.io/oss-review-toolkit/ort --help
```
## 从源代码
安装以下基本先决条件:
* Git(任何最新版本均可)。
然后克隆此仓库。
```
git clone https://github.com/oss-review-toolkit/ort
# 如果你打算运行测试,你也必须 clone submodules。
cd ort
git submodule update --init --recursive
```
### 使用 Docker 构建
安装以下基本先决条件:
* Docker 18.09 或更高版本(并确保其守护程序正在运行)。
* 为 Docker 启用 [BuildKit](https://docs.docker.com/develop/develop-images/build_enhancements/#to-enable-buildkit-builds)。
进入包含 ORT 源代码的目录并运行 `docker build -t ort .`。
或者,使用位于 `scripts/docker_build.sh` 的脚本,该脚本还会从 Git 修订版本设置 ORT 版本。
### 原生构建
安装这些额外的先决条件:
* Java Development Kit (JDK) 21 或更高版本;还要记住相应地设置 `JAVA_HOME` 环境变量。
进入包含 ORT 源代码的目录并运行 `./gradlew installDist`(首次运行时将引导 Gradle 并下载所有必需的依赖项)。
## 基本用法
根据 ORT 的安装方式,可以通过以下方式运行它:
* 如果如上所述在本地构建了 Docker 镜像,请使用
docker run ort --help
您可以在[文档](./website/docs/guides/docker.md)中找到有关使用 ORT with Docker 的更多提示。
* 如果 ORT 分发包是从源代码构建的,请使用
./cli/build/install/ort/bin/ort --help
* 如果通过 Gradle 直接从源代码运行,请使用
./gradlew cli:run --args="--help"
请注意,在这种情况下,ORT 使用的工作目录是 `cli` 项目的目录,而不是 `gradlew` 所在的目录(参见 https://github.com/gradle/gradle/issues/6074)。
# 许可证
版权所有 (C) 2017-2026 [The ORT Project Copyright Holders](./NOTICE)。
有关许可证详细信息,请参阅本项目根目录下的 [LICENSE](./LICENSE) 文件。
OSS Review Toolkit (ORT) 是一个 [Linux Foundation 项目](https://www.linuxfoundation.org/),并且是 [ACT](https://automatecompliance.org/) 的一部分。
要了解有关项目如何治理的更多信息,包括其章程,请参阅 [ort-governance](https://github.com/oss-review-toolkit/ort-governance) 仓库。
标签:CycloneDX, DevSecOps, FOSS, JS文件枚举, Kotlin, Policy-as-Code, SBOM, SPDX, 上游代理, 云安全监控, 依赖管理, 后台面板检测, 安全合规, 开源合规, 文档安全, 源码归档, 版权合规, 硬件无关, 策略即代码, 网络代理, 聊天机器人安全, 自动化合规, 许可证扫描, 请求拦截, 跌倒检测, 软件开发工具包, 软件物料清单, 静态分析