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

ガイド

Scanverra CLI

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

Node.js 18以降、およびPro、Team、Enterpriseのいずれかのプランが必要です。

クイックスタート

グローバルに何もインストールする必要はありません。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]フォルダをスキャンし(デフォルトはカレントフォルダ)、結果を表示してアップロードする

主なオプション

オプション説明
--json / --sarif機械可読な出力。SARIFはGitHub code scanningやSonarのインポートに対応
--fail-on <severity>この重大度以上の結果があれば失敗として終了する(デフォルト: high)
--category <list>security、dependency、iac、qualityのいずれかの結果のみを含める
--exclude <glob>一致するパスをスキップする。.scanverraignoreファイルも同様に機能する
--no-uploadスキャンのみを行い、結果をScanverraに送信しない
--include-code各結果の該当コード行もアップロードする(デフォルトでは無効)
--offlineネットワーク通信を行わず、キャッシュ済みのルールを使用する
--api-key, --api-url認証情報やサーバーを上書きする。CIで便利

アップロードされる内容

アップロードされる

ファイルパス、行番号、ルール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が失敗した
2使用方法のエラー、またはサーバーがキーかプランを拒否した

CIでの利用

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

- uses: actions/checkout@v4
- uses: actions/setup-node@v4
  with: { node-version: 20 }
- 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-

トラブルシューティング

メッセージ対処方法
Not logged inscanverra loginを実行するか、SCANVERRA_API_KEYを設定してください
API key was rejectedキーが間違っているか失効しています。API Keysで新しいキーを作成してください
Requires a Pro, Team or Enterprise planプランをアップグレードしてから再度お試しください
Daily limit for downloading the scanner rules reached上記の通りCIでルールフォルダをキャッシュしてください
No scannable files foundパスと.gitignoreまたは.scanverraignoreを確認してください

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

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