69 个版本
0.4.28 | 2024 年 7 月 24 日 |
---|---|
0.4.26 | 2024 年 6 月 25 日 |
0.4.25 | 2023 年 12 月 11 日 |
0.4.23 | 2023 年 11 月 2 日 |
0.1.1 | 2019 年 3 月 27 日 |
#76 in Cargo 插件
808 每月下载
110KB
2.5K SLoC
cargo pants
cargo-pants
是一个 Cargo 子命令,提供项目中的物料清单,以及在这些依赖项上发现的任何漏洞,由 Sonatype OSS Index 支持。
为什么是 pants?
难道你不检查你的裤子是否有洞吗?同样,我们认为你应该检查你的应用程序的依赖项是否有漏洞,这正是 cargo-pants
所做的!此外,我们还通过解析你的 Cargo.lock
文件提供物料清单,这样你可以看到你使用的所有依赖项。
需求
cargo-pants
是用 Rust 1.49.0 构建的,你很可能从这里开始。
安装
cargo-pants
是一个 Cargo 子命令,可以使用 cargo install
安装
$ cargo install cargo-pants
设置环境变量 OSS_INDEX_API_KEY
以使用您的密钥进行认证请求。
安装 cargo-pants
后,您可以像这样运行它
$ cargo pants
用法
cargo-pants 0.3.2
Glenn Mohre <[email protected]>
A library for auditing your cargo dependencies for vulnerabilities and checking your pants
USAGE:
cargo pants [FLAGS] [OPTIONS]
FLAGS:
-h, --help Prints help information
--dev A flag to include dev dependencies
-v, --verbose Set the verbosity of the logger, more is more verbose, so -vvvv is more verbose than -v
-d, --loud Also show non-vulnerable dependencies
-m, --no-color Disable color output
-V, --version Prints version information
OPTIONS:
--ignore-file <ignore-file> The path to your .pants-ignore file [default: .pants-ignore]
--ossi-api-key <oss-index-api-key> OSS Index API Key [env: OSS_INDEX_API_KEY]
-s, --pants_style <pants-style> Your pants style
--tomlfile <toml-file> The path to your Cargo.toml file [default: Cargo.toml]
cargo pants
可以在构建上下文中运行,或者单独运行。
我们还会告诉你我们对你的 pants 风格选择的看法
$ cargo pants --pants_style JNCO
我们对 pants 非常认真。
还有两个影响输出的命令行标志
$ cargo pants --loud
这显示了完整物料清单中的所有非漏洞依赖项。
$ cargo pants --no-color
这将禁用输出结果的任何着色。
如果发现漏洞,cargo-pants
将以状态码 3 退出,并打印物料清单/发现漏洞。如果没有问题,它将以状态码 0 退出。
排除漏洞
可以排除漏洞!到目前为止,我们已经实现了将名为 .pants-ignore
的文件检入到您的仓库中的功能,理想情况下,它应该位于您运行 cargo-pants
的根目录下。或者,您可以在不同的位置运行带有排除文件的 cargo-pants
,例如
$ cargo pants --ignore-file /Users/cooldeveloperperson/code/sonatype-nexus-community/cargo-pants/.pants-ignore
该文件应如下所示
{
"ignore": [{ "id": "78a61524-80c5-4371-b6d1-6b32af349043", "reason": "Insert reason here" }]
}
唯一真正重要的字段是 id,这是您从 OSS Index 为漏洞收到的 ID。您可以通过添加诸如原因之类的字段,以便您以后可以理解为什么您将漏洞列入白名单。
任何被排除的 id 都将从结果中静音,不会导致失败。
IQ 使用
更多待定,但现在 Nexus IQ Server 存在实验性使用
cargo-iq 0.3.1
Glenn Mohre <[email protected]>
A library for auditing your cargo dependencies for vulnerabilities and checking your pants
USAGE:
cargo iq [FLAGS] [OPTIONS] --iq-application <application>
FLAGS:
-h, --help Prints help information
--dev A flag to include dev dependencies
-v, --verbose Set the verbosity of the logger, more is more verbose, so -vvvv is more verbose than -v
-V, --version Prints version information
OPTIONS:
-a, --iq-application <application> Specify Nexus IQ public application ID for request
-t, --iq-attempts <attempts> Specify Nexus IQ attempts in seconds [default: 60]
-x, --iq-server-url <server-url> Specify Nexus IQ server url for request [default: https://127.0.0.1:8070]
-s, --iq-stage <stage> Specify Nexus IQ stage for request [default: develop]
-k, --iq-token <token> Specify Nexus IQ token for request [env: TOKEN=] [default: admin123]
--tomlfile <toml-file> The path to your Cargo.toml file [default: Cargo.toml]
-l, --iq-username <username> Specify Nexus IQ username for request [default: admin]
CI 使用
类似于 cargo audit
但有更多 pants,您可以在 Travis CI 上使用此示例配置运行您的构建 cargo pants
language: rust
before_script:
- cargo install --force cargo-pants
script:
- cargo pants
我们使用 CircleCI 来构建此项目。有关我们如何在 CI 构建中使用 cargo-pants 的信息,请参阅我们的 CircleCI 配置:.circleci/config.yml。此文件也是一个很好的参考,其中包含许多有用的 cargo 命令。
贡献
我们非常关心让世界变得更安全,这就是我们创建 cargo-pants
的原因。如果您也想通过参与此项目来加快软件开发速度,请加入我们!在您开始工作之前,创建一个新问题,或评论现有问题,以让其他人知道您正在这样做!
致谢
cargo-pants
的代码主要是由 Glenn Mohre 编写的,我们想向 Glenn 表示最诚挚的感谢,感谢他为社区做出贡献。开源很棒,您帮助使其变得更好!
cargo-pants
的标志是从 www.pexels.com 夺取的,具体是从 这张图片 中获取的。
cargo-pants
的代码受到了 cargo-audit
的影响,我们承认我们是站在巨人的肩膀上。
开发
您可以通过以下方式运行本地更改而不安装包
cargo run --bin cargo-pants pants
或
cargo run --bin cargo-iq iq --iq-application sandbox-application
使用以下命令在本地上构建和安装包
cargo build --all --all-targets
cargo install cargo-pants --force --path .
发布流程
持续集成构建将在每次向 main
分支提交时自动执行新版本发布。
要跳过从 main
执行发布,请确保您的提交消息包含:[skip ci]
。
详细说明
请注意,这不受 Sonatype 支持,这是我们向开源社区(即您!)做出的贡献。
记住
- 根据您所能承受的风险容忍度使用此贡献
- 请勿为此项目相关的
cargo-pants
支持提交 Sonatype 支持票据 - 在GitHub上存在DO文件问题,以便社区可以提供帮助
呼,比我预想的要容易。最后但同样重要的是
享受创建和使用 cargo-pants
以及 Sonatype OSS Index 的过程,我们很高兴在这里见到您!
寻求帮助
想为我们的代码做出贡献但需要一些帮助?有几个方法可以获取信息
- 在 Gitter 上与我们聊天
依赖项
~12–29MB
~441K SLoC