Skip to content
SEO Optimizer is live, Audit on page SEO and AI-search readiness. Try it free
CLI

ガイド

Scanverra CLI

@scanverra/cliを使えば、ターミナルやCIパイプラインから任意のコードベースをスキャンできます。スキャンは自分のマシン上で実行され、Scanverraに送信されるのはスキャン結果のみです。

Node.js 18以上とScanverraのAPIキーが必要です。Freeプランに1つ含まれています。

クイックスタート

グローバルに何もインストールする必要はありません。scanverraコマンドを常設したい場合はnpm i -g @scanverra/cliを実行してください。

npx @scanverra/cli login        # paste an API key from Dashboard > API keys
npx @scanverra/cli scan .

仕組み

常に最新

個別にCLIのバージョンを管理したり手動でアップグレードしたりすることなく、常に最新のチェックが実行されます。

ダッシュボードと同じエンジン

どこで実行しても、Scanverraで開始したスキャンと同じ結果になります。

ローカルでスキャン

ソースファイルは自分のマシン上で読み込まれます。デフォルトではScanverraに送信されるのはスキャン結果のみで、ファイルの内容や該当したコード行は送信されません。

ダッシュボードに表示される

各スキャンにはAIが作成した要約とリンクが付き、ダッシュボードから開始したスキャンと同じ結果ページが表示されます。

コマンド

コマンド説明
scanverra loginAPIキーを確認して保存する
scanverra logout保存済みのキーを削除する
scanverra whoamiキーに紐づくアカウントとプランを表示する
scanverra scan [path]フォルダをスキャンし(デフォルトはカレントフォルダ)、結果を表示してアップロードする
scanverra audit <url>公開中サイトの速度を監査。--budget付きでは保存済みの予算を超えると失敗

主なオプション

オプション説明
--json / --sarif機械可読な出力。SARIFはGitHub code scanningやSonarのインポートに対応
--fail-on <severity>この重大度以上の結果があれば失敗として終了する(デフォルト: high)
--fail-on-new, --baseline-branch <name>, --baseline-commit <sha>前回アップロードしたスキャンと比べて、このスキャンで重大または高の問題が増えた場合にのみ失敗します(プルリクエスト向けの新規コードゲート)。--baseline-branch main を付けるとマージ先ブランチと比較します。そのブランチが一度もスキャンされていない場合は、重大・高の問題はすべて新規として扱われます。分岐元のコミットがわかる場合(git merge-base または --baseline-commit <sha>)は、そのコミットのスキャンと比較するため、後からマージ先ブランチで行われた修正は不利に数えられません。--fail-on の代わりに使い、アップロードが必要です
--category <list>security、dependency、iac、qualityのいずれかの結果のみを含める
--exclude <glob>一致するパスをスキップする。.scanverraignoreファイルも同様に機能する
--no-uploadスキャンのみを行い、結果をScanverraに送信しない
--include-code各結果の該当コード行もアップロードする(デフォルトでは無効)
--offlineネットワーク通信を行わず、キャッシュ済みのルールを使用する
--api-key, --api-url認証情報やサーバーを上書きする。CIで便利
--save-budget <file>監査:この実行から予算を保存(余裕を持たせた上限+許可するサードパーティ)
--budget <file>監査:保存済みの予算と比較し、違反があれば終了コード1

アップロードされる内容

アップロードされる

ファイルパス、行番号、ルールID、タイトル、説明、修正提案、重大度、依存パッケージ名とバージョン、およびプロジェクト名、ブランチ、コミット、PR番号。

デフォルトではアップロードされない

ファイルの内容、および各結果の該当コード行。シークレットの検出結果にシークレットの値そのものが含まれることはありません。ダッシュボードで該当行を表示したい場合は--include-codeを指定してください。

対象ファイルの選び方

  • Gitリポジトリ内では追跡済み・未追跡のファイルが対象となり、.gitignoreが尊重されます。Git外では一般的なビルドフォルダや依存関係フォルダはスキップされます。
  • .scanverraignoreファイル(1行に1つのglobパターン)と、繰り返し指定できる--excludeフラグで、さらに除外を追加できます。
  • 対象行の直前にscanverra-ignoreまたはnosecコメントを置くと、その1件の結果を抑制できます。

終了コード

0成功。--fail-onのしきい値に達した結果はありません
1しきい値に達した結果があった、--fail-on-gateでquality gateが失敗した、または--fail-on-newで重大・高の問題が増えた
2使用方法のエラー、サーバーがキーかプランを拒否した、または脆弱性データベースに接続できず結果を検証できなかった(再実行してください)

CIでの利用

他のScanverra CI連携と同様にAPIキーをシークレットとして保存し、新しいランナーが毎回ルールを再ダウンロードしないようルールフォルダをキャッシュしてください。

- uses: actions/checkout@v7
- uses: actions/setup-node@v7
  with: { node-version: 24 }
- run: npx @scanverra/cli scan . --fail-on high
  env:
    SCANVERRA_API_KEY: ${{ secrets.SCANVERRA_API_KEY }}

実行間でルールをキャッシュする

- uses: actions/cache@v4
  with:
    path: ~/.cache/scanverra
    key: scanverra-rules-${{ github.run_id }}
    restore-keys: scanverra-rules-

Webサイトのパフォーマンス予算

良いデプロイから作った予算をコミットします。以降の実行で、ページが遅く・重くなったり新しいサードパーティが増えたりするとビルドが失敗します。

# once, from a good deploy:
scanverra audit https://staging.example.com --save-budget perf-budget.json

# in CI, after deploying a preview:
- run: npx scanverra audit "$PREVIEW_URL" --budget perf-budget.json
  env:
    SCANVERRA_API_KEY: ${{ secrets.SCANVERRA_API_KEY }}

トラブルシューティング

メッセージ対処方法
Not logged inscanverra loginを実行するか、SCANVERRA_API_KEYを設定してください
API key was rejectedキーが間違っているか失効しています。API Keysで新しいキーを作成してください
You have reached your free scan limit今月の無料Repo Scanner回数を使い切りました。--no-uploadでスキャンするか、翌月まで待つか、アップグレードしてください。
Daily limit for downloading the scanner rules reached上記の通りCIでルールフォルダをキャッシュしてください
No scannable files foundパスと.gitignoreまたは.scanverraignoreを確認してください

ターミナルからスキャンする準備はできましたか?

APIキーを発行して、1分以内に最初のスキャンを実行しましょう。