- 組織 (
/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
プロファイルを選択する(任意)
コードスキャンプロファイルを一覧表示 を呼び出し、
discover モードのプロファイルを選択します。デフォルトのセキュリティスキャンを実行する場合は、プロファイルを指定しません。セキュリティ以外のスキャンでは、一致するスキャンタイプのプロファイルが必要です。2
スキャンを開始する
201 が返されます。scan_id を保持してください。409 は、組織のスキャンバックログが満杯であることを示します。後で再試行してください。3
完了するまでポーリングする
スキャンの
status が completed (または failed / cancelled) になるまで、コードスキャンの一覧 を呼び出します (repo_name でフィルタリング) 。これら3つの状態は終端状態として扱います。awaiting_user_input は、web app から開始された対話型スキャンでのみ発生します。API で開始したスキャンは非対話型のため、この状態にはなりません。4
検出結果を確認する
scan_id を指定して コードスキャンの検出結果を一覧表示 を呼び出し、検出結果をページ単位で取得します。必要に応じて、severity と status でフィルタリングできます。5
修復する
コードスキャンの検出結果を修復 を呼び出すと、Devin が検出結果を修正するプルリクエストを作成します。
取り込みスキャン
ingest モードのプロファイルを作成します。次に、attachments API (コードスキャン権限に加え、UseDevinSessions 組織権限が必要な組織スコープのエンドポイント) を使用してスキャナーのレポートをアップロードし、profile_id と attachment_urls を指定して Start 取り込み コードスキャン (または Enterprise 相当のエンドポイント) を呼び出します。
