- 組織 (
/v3/organizations/{org_id}/code-scans/...) は単一の組織を対象とし、組織レベルのUseCodeScans(書き込み) またはViewCodeScans(読み取り) 権限が必要です。 - Enterprise (
/v3/enterprise/...) は Enterprise 内のすべての組織を対象とし、Enterprise レベルのUseAccountCodeScans(書き込み) またはViewAccountCodeScans(読み取り) 権限が必要です。スキャンは 1 つの組織に属するため、スキャン作成および修復のエンドポイントでは引き続きパスにorg_idを指定します。
エンドポイント
同じ操作は、リクエストおよびレスポンスの形式が同一の
/v3beta1/...パスでも利用できます。この表ではスキャンワークフローを扱います。v3 OpenAPI仕様では、両方のスコープで自動スキャンのスケジュール設定 (POST .../code-scans/{scan_id}/auto-scan) とプロファイルの再割り当て (PUT .../code-scans/{scan_id}/profile) も利用できます。
以下の手順では組織スコープを使用します。認証情報がEnterpriseスコープの場合は、Enterprise用のパスと権限に置き換えてください。
一般的なフロー
1
プロファイルを選択する(任意)
List コードスキャン Profiles を呼び出し、
discover モードのプロファイルを選択します。デフォルトのセキュリティスキャンを実行する場合は、プロファイルを指定しません。2
スキャンを開始する
201 が返されます。scan_id を保持してください。409 は、組織のスキャンバックログが満杯であることを示します。後で再試行してください。3
完了するまでポーリングする
スキャンの
status が completed (または failed / cancelled) になるまで、List コードスキャンs を呼び出します (repo_name でフィルタリング) 。これら3つの状態は終端状態として扱います。awaiting_user_input は、web app から開始された対話型スキャンでのみ発生します。API で開始したスキャンは非対話型のため、この状態にはなりません。4
検出結果を確認する
scan_id を指定して List コードスキャン Findings を呼び出し、検出結果をページ単位で取得します。必要に応じて、severity と status でフィルタリングできます。5
修復する
Remediate コードスキャン Finding を呼び出すと、Devin が検出結果を修正するプルリクエストを作成します。
取り込みスキャン
ingest モードのプロファイルを作成します。次に、attachments API (コードスキャン権限に加え、UseDevinSessions 組織権限が必要な組織スコープのエンドポイント) を使用してスキャナーのレポートをアップロードし、profile_id と attachment_urls を指定して Start 取り込み コードスキャン (または Enterprise 相当のエンドポイント) を呼び出します。
