Open1

Slither Action導入時に出たエラーの対処備忘録

ぽけなぽけな

Slither Actionとは

https://github.com/marketplace/actions/slither-action
Solidity&Vyperの静的解析ツールをGitHub Actionで使えるようにしたもの

今回導入しようとしたリポジトリの構成

  • rootにcontractsfrontendディレクトリがあるmonorepo
  • contracts配下は、hardhatとfoundryの両方が使えるようになっており、パッケージはnode_modulesを参照する

Slitherの設定

出てきたエラーたち

foundryのファイル見つからないんだけど!

  • monorepo構成なので、targetを設定してあげる
name: Slither Analysis
on: [push]
jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: crytic/slither-action@v0.3.1
        with:
          target: './contracts'

Argument list too long

  • Slitherでの解析は完了していたものの、PRへのコメントがされていない状況

  • 解析結果を見ると、node_modules配下のコントラクトも解析されてしまい、数百件に上る指摘が来ていた。。

  • rootにslither.config.jsonを作成し、filter_pathsで解析不要なディレクトリを指定してあげればOK

{
  "filter_paths": "contracts/mocks,lib,node_modules"
}

※最初slither.config.jsonをrootではなくcontracts配下に作ってしまい、動かない…となっていたのは内緒