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开发工具

Download history 8651/week @ 2024-05-04 7266/week @ 2024-05-11 6927/week @ 2024-05-18 4697/week @ 2024-05-25 6673/week @ 2024-06-01 5954/week @ 2024-06-08 8522/week @ 2024-06-15 4480/week @ 2024-06-22 6244/week @ 2024-06-29 7082/week @ 2024-07-06 6805/week @ 2024-07-13 7325/week @ 2024-07-20 6364/week @ 2024-07-27 12222/week @ 2024-08-03 7358/week @ 2024-08-10 6517/week @ 2024-08-17

每月下载量:34,051

MIT 许可证

57KB
1K SLoC

Workflow Status

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

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