ワークフロー
プルリクエストチェック
Scanverra はすべてのプルリクエストをスキャンし、追加された緊急・高の問題をコメントし、ステータスチェック scanverra/repo-scan を設定します。ターゲットブランチに既にある問題でマージがブロックされることはありません。
設定方法
- 1
GitHub を接続
Repo Scanner のページで、リポジトリの管理者権限を持つ GitHub アカウントを接続します。 - 2
プルリクエストチェックを開く
リポジトリの「スキャン」ボタンの横にあるプルリクエストのアイコンをクリックします。 - 3
スキャンのタイミングを選ぶ
「プルリクエストをスキャン」は既定でオンです。「ブランチへのプッシュをスキャン」をオンにすると、指定したブランチ (例:main, production) へのプッシュもスキャンします。最後に「有効にする」をクリックします。 - 4
チェックを必須にする (任意)
GitHub で Settings、Branches の順に開き、メインブランチのルールを追加してステータスチェックscanverra/repo-scanを必須にします。緊急または高の問題を追加するプルリクエストはマージできなくなります。
チェックの判定内容
各スキャンは、プルリクエストのターゲットブランチの最新スキャンと比較されます。検出結果はツール、ルール、ファイル (行ではなく) で照合されるため、古いコードを移動しても新しい問題にはなりません。ステータスは PR が緊急・高の問題を追加した場合のみ failure、スキャンが完了できなかった場合は error です。Scanverra は PR ごとに1つのコメントを保ち、プッシュのたびに更新します。
### ❌ Scanverra: 2 new critical or high issues Score 72/100 · quality gate passed · compared with the latest scan of `main` | Severity | Issue | | --- | --- | | 🔴 critical | Hardcoded API key (`src/lib/payments.ts:12`) | | 🟠 high | SQL query built from user input (`src/api/orders.ts:48`) | 5 critical or high issues were already on `main` and don't block this PR. Open the full report. From there you can open a fix pull request for the issues Scanverra can fix.
プルリクエストチェックか GitHub Action か
どちらも同じスキャナーを使います。作業スタイルに合う方を選んでください。
| プルリクエストチェック | GitHub Action | |
|---|---|---|
| 設定 | Scanverra のスイッチ1つ。ワークフローファイルは不要。 | ワークフローファイルとリポジトリシークレット。 |
| 実行場所 | GitHub が Webhook を送った後、Scanverra 上で。 | お使いの GitHub Actions ランナー上で。 |
| 判定 | ターゲットブランチと比べて新しい緊急・高の問題。 | 重大度の fail-on、または同じ新規コード判定の fail-on-new。 |
| 結果 | PR コメント、ステータスチェック、Scanverra のレポート。 | ジョブログ、code scanning の SARIF、アップロード時は Scanverra のレポート。 |
Action については CI/CD を参照してください。
トラブルシューティング
プルリクエストに何も表示されない
GitHub でリポジトリの Settings、Webhooks の順に開き、Scanverra への最新の配信を確認してください。401 は Webhook のシークレットが変わったことを意味します。チェックを一度無効にしてから有効にしてください。
「GitHub がこのリポジトリへの Webhook を許可しませんでした」
接続しているアカウントがリポジトリの管理者ではありません。管理者のアカウントを接続するか、管理者にチェックを有効にしてもらってください。
プラン変更後にチェックが止まった
Webhook によるスキャンは有料プランでのみ実行されます。設定は保持され、プランが有効になると再び動作します。
すべての問題が新しいと判定される
ターゲットブランチに比較できる過去のスキャンがありません。Repo Scanner のページで一度スキャンするか、
mainについて「ブランチへのプッシュをスキャン」をオンにしてください。