Open3

reviewdogの雑まとめ

かずかず

reviewdogの機能

  • 任意のlinterを使える: ツールのエラーフォーマットを-efmで指定して取り扱い可能
    • 事前定義されたツールのフォーマットがあるので、-fで代わりに利用可能
    • ほかにも色々な入力形式をサポートしている
      • RDFormat: linterの結果を表す標準的な機械可読性のあるメッセージの構造体。これを使って、複数行範囲のコメントや、コードの提案とかでも使える。(serverity・rule code with URLなどもあるらしい...、なにかは不明)
      • diff(未定義なフォーマット): コードの提案で利用できる
      • checkstyle format: https://checkstyle.sourceforge.io/
      • sarif format: https://sarifweb.azurewebsites.net/
  • RDFormatやDiffを使って、コードの提案ができる。
  • config fileで、実行するreviewdogの定義を記載できる
  • 結果を出力する場所を指定できる
    • ローカル環境
    • githubのPRチェック
    • githubのPRレビュー
    • githubのPRのアノテーション
    • githubのチェック: PRだけでなくコミットにも適用できる
    • etc
  • エラー発見時に、終了コードを0か1にするか選べる。lintツールの結果をパイプで渡してエラーにしたいときに、--fail-on-errorフラグをtrueにする
  • github-pr-checkのreporterで結果を出力する際に、レポートのレベルをinfo・warning・errorに変更できる
  • 結果をフィルタリングする機能がある
    • 前提として、作業を行ってコードに差分があるのでそれを利用する。
      • reporterがローカルの場合は-diffコマンドで、何を差分にするかを指定する
    • added: 追加・変更された行で結果をフィルタする
    • diff_context: 変更された行 +-N行で結果をフィルタする
    • file: 追加・変更されたファイルで結果をフィルタする。ファイル内であれば、diffなくても結果を報告する
    • nofilter: 結果をフィルタしない