cargo-deny-action 使用教程
1. 项目的目录结构及介绍
cargo-deny-action/
├── .github
│ └── workflows
│ └── main.yml
├── .gitignore
├── LICENSE-APACHE
├── LICENSE-MIT
├── README.md
├── action.yml
└── deny.toml
- .github/workflows/main.yml: GitHub Actions 的工作流配置文件。
- .gitignore: Git 忽略文件配置。
- LICENSE-APACHE: Apache 许可证文件。
- LICENSE-MIT: MIT 许可证文件。
- README.md: 项目说明文档。
- action.yml: GitHub Action 的定义文件。
- deny.toml: cargo-deny 的配置文件。
2. 项目的启动文件介绍
项目的启动文件是 action.yml
,它定义了 GitHub Action 的行为和输入参数。以下是 action.yml
的主要内容:
name: 'cargo-deny'
description: 'GitHub Action for cargo-deny'
inputs:
rust-version:
description: 'The rust/cargo version to use'
default: '1.71.0'
log-level:
description: 'The log level to use for cargo-deny'
default: 'warn'
command:
description: 'The command to use for cargo-deny'
default: 'check'
arguments:
description: 'Additional arguments to pass to cargo-deny'
runs:
using: 'docker'
image: 'Dockerfile'
args:
- ${{ inputs.command }}
- ${{ inputs.arguments }}
branding:
icon: 'shield'
color: 'blue'
3. 项目的配置文件介绍
项目的配置文件是 deny.toml
,它用于配置 cargo-deny 的行为。以下是一个示例 deny.toml
文件的内容:
[licenses]
deny = [
"GPL-3.0",
"AGPL-3.0"
]
[bans]
deny = [
{ name = "insecure-crate", reason = "Security risk" }
]
[advisories]
db = "https://github.com/RustSec/advisory-db.git"
- [licenses]: 定义不允许使用的许可证。
- [bans]: 定义不允许使用的 crate。
- [advisories]: 定义使用的安全公告数据库。
通过以上配置,cargo-deny 可以检查项目中的依赖项是否使用了不允许的许可证,是否包含了被禁止的 crate,以及是否存在已知的安全漏洞。