#clippy #github #linter #review #automated #filter #reviewdog

app clippy-reviewdog-filter

Clippy与Reviewdog集成的过滤器

5个版本

0.1.6 2024年5月5日
0.1.5 2024年5月5日
0.1.4 2024年1月18日
0.1.3 2024年1月17日
0.1.2 2024年1月16日

#105测试 类别中

每月47 次下载

MIT/Apache

74KB
514 代码行

Clippy与Reviewdog的集成过滤器

screenshot

这是什么?

Reviewdog是一个自动化代码审查工具。它从外部代码检查器的输出中提取相关部分,并以多种格式报告结果,包括GitHub检查和GitHub评论。

clippy-reviewdog-filter是一个简单的过滤器,用于将Clippy(Rust的官方代码检查器)的输出作为Reviewdog的输入。

如何在本地尝试此应用

如果在本地上运行此应用,与直接运行Clippy没有太大区别,但如果您想在将其放入CI之前尝试此应用,

安装reviewdog:获取二进制发布版

$ go get -u github.com/haya14busa/reviewdog/cmd/reviewdog

安装clippy-reviewdog-filter:获取二进制发布版

$ cargo install --git https://github.com/qnighy/clippy-reviewdog-filter.git
cargo clippy --message-format json 2>&1 | clippy-reviewdog-filter | reviewdog -f=checkstyle -diff="git diff master"

配置示例

配置来自示例仓库

travis.yml:

language: rust
env:
  global:
    # See the reviewdog manual for how to obtain the token.
    # Beware that, encrypted environment variables cannnot be seen in
    # builds for pull requests from fork repositories.
  - REVIEWDOG_GITHUB_API_TOKEN=0123456789abcdef0123456789abcdef0123456789abcdef
install:
- mkdir -p ~/bin
- export PATH="$HOME/bin/:$PATH"
- curl -fSL https://github.com/haya14busa/reviewdog/releases/download/0.9.11/reviewdog_linux_amd64 -o ~/bin/reviewdog
- curl -fSL https://github.com/qnighy/clippy-reviewdog-filter/releases/download/v0.1.1/clippy-reviewdog-filter-x86_64-unknown-linux-musl -o ~/bin/clippy-reviewdog-filter
- chmod +x ~/bin/reviewdog ~/bin/clippy-reviewdog-filter
- rustup component add clippy-preview
script:
- reviewdog -reporter=github-pr-review

.reviewdog.yml:

runner:
  clippy:
    cmd: 'find . -type f -name \*.rs -exec touch {} \;; cargo clippy --message-format json 2>&1 | clippy-reviewdog-filter'
    format: checkstyle

安全性说明

如果您想使用github-pr-review报告器在.travis.yml中,您实际上会向拉取请求的提交者发布您的API令牌,因为他们可以自由地在您的Travis CI仓库上运行修改过的.travis.yml版本。

为了更好的安全性,您可能想使用github-pr-check报告器,或者在更隔离的环境中运行,例如在专门的GitHub Webhook服务器中运行reviewdog -reporter=github-pr-review

当然,在没有任何分叉的私有仓库中使用 github-pr-review 没有问题。在这种情况下,您可以使用 travis encrypt 命令对 github 令牌进行加密。

依赖项

~6–8.5MB
~180K SLoC