39 个版本
0.6.5 | 2024年8月6日 |
---|---|
0.6.0 | 2024年7月30日 |
0.4.2 | 2023年9月7日 |
0.4.1 | 2023年7月30日 |
0.2.15 | 2021年7月6日 |
19 在 开发工具 中
每月下载量:34,051
57KB
1K SLoC
clippy-sarif
此包提供了一个命令行工具,用于将 cargo clippy
诊断输出转换为 SARIF。
最新 文档 可在此处找到。
clippy 是一个流行的 Rust 代码风格检查器和静态分析工具。更多信息可以在官方仓库找到: https://github.com/rust-lang/rust-clippy
SARIF 或静态分析结果交换格式是静态分析工具输出的一种行业标准格式。更多信息可以在官方网站找到: https://sarifweb.azurewebsites.net/
安装
可以使用 cargo
安装 clippy-sarif
cargo install clippy-sarif
cargo binstall clippy-sarif
或直接从 Github Releases 下载
# make sure to adjust the target and version (you may also want to pin to a specific version)
curl -sSL https://github.com/psastras/sarif-rs/releases/download/clippy-sarif-latest/clippy-sarif-x86_64-unknown-linux-gnu -o clippy-sarif
使用方法
对于大多数情况,只需运行带有 json
输出的 cargo clippy
并将结果通过管道传递给 clippy-sarif
。
示例
cargo clippy --message-format=json | clippy-sarif
如果您使用的是 Github Actions,SARIF 可用于与 Github 高级安全(GHAS)集成,这可以在您的存储库的“安全”标签页中显示代码警报。
将 clippy-sarif
输出上传到 Github 后,clippy
诊断将在 GHAS 中可用。
示例
on:
workflow_run:
workflows: ["main"]
branches: [main]
types: [completed]
name: sarif
jobs:
upload-sarif:
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' }}
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: clippy,rustfmt
override: true
- uses: Swatinem/rust-cache@v1
- run: cargo install clippy-sarif sarif-fmt
- run: cargo clippy --all-targets --all-features --message-format=json |
clippy-sarif | tee results.sarif | sarif-fmt
- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: results.sarif
在某些情况下,SARIF 报告中包含的文件的路径可能与预期不同。例如,如果从与包文件夹不同的文件夹运行 clippy-sarif
,则可能会发生这种情况。在这种情况下,请考虑使用像 jq
这样的工具来修改路径
示例
cat results.sarif \
| jq --arg pwd "some_folder/my_crate" '.runs[].results[].locations[].physicalLocation.artifactLocation.uri |= $pwd + "/" + .' \
> results.sarif.tmp
请注意,这可能在未来的版本中得到修复。
许可证:MIT
依赖项
~4–6.5MB
~113K SLoC