Skip to main content
POST
コードスキャンを開始

権限

Enterprise レベルで UseAccountCodeScans 権限を持つ、サービスユーザーまたはパーソナルアクセストークンが必要です。

動作

指定した組織内のリポジトリ (repo_name) または複数のリポジトリ (repos) に対する新しいコードスキャンをキューに追加します。スキャンはスキャンディスパッチャーによって非同期で開始されます。レスポンスとして、初期 status が waiting または pending のスキャンレコードが返されます。コードスキャンの一覧をポーリングして進行状況を追跡し、スキャンが completed になったら、scan_id でフィルタリングしたコードスキャン検出結果の一覧で結果を確認します。 スキャンは、呼び出し元のプリンシパル (リクエストを行ったサービスユーザーまたは PAT) に紐付けられます。

リクエストフィールド

repo_name と repos のいずれか一方のみを指定してください。
  • repo_name: 完全なリポジトリ名 (例: owner/repo) 。リポジトリには、組織の Git 統合を通じてすでにアクセスできる必要があります。
  • host: 推測できない場合に指定する、リポジトリの Git ホスト。
  • repos: 1 つのマルチリポジトリスキャンの対象とするリポジトリ。repo_name と任意の host を持つオブジェクトのリストとして指定します (最大 200 件) 。最初の項目がスキャンのプライマリリポジトリになります。
  • profile_id: 適用するスキャンプロファイル。ingest モードのプロファイルには、Start Ingestion Scanを使用します。
  • scan_type: 実行するスキャンの種類。profile_id を指定する場合は、プロファイルのスキャンタイプと一致する必要があります。デフォルトはプロファイルの種類です。プロファイルを指定しないスキャンでは security がデフォルトになります。セキュリティ以外のスキャンタイプにはプロファイルが必要です。
  • commit_sha: スキャン前にチェックアウトするコミット。デフォルトはリポジトリのデフォルトブランチの HEAD です。
  • effort: normal (デフォルト) では、モデルの推論レベルを抑え、より大きな単位でまとめて調査を行います。deep ではパイプライン全体を実行します。
  • interactive: true の場合、スキャンは脅威モデリングと調査の間で awaiting_user_input 状態となって一時停止し、ユーザーのレビューを待ちます。デフォルトは false です。インタラクティブレビューに対応しているのはセキュリティスキャンのみで、その他のスキャンタイプはユーザーの操作なしで実行されます。
  • platform: スキャンのセッションを実行する場所。組織に設定されたプラットフォームラベル (例: linux、windows、macos) または outpost プールの名前のいずれかを指定します (大文字と小文字は区別されません) 。名前が両方に一致する場合は、プラットフォームが優先されます。デフォルトは組織のデフォルト設定です。

エラー

  • scan_type がプロファイルと競合している場合、プロファイルを指定せずにセキュリティ以外の scan_type を指定した場合、または platform が設定済みのプラットフォームラベルや outpost プールのいずれとも一致しない場合は 400 (エラー本文に指定可能な値の一覧が含まれます) 。
  • 組織が取り込み専用スキャンに制限されており、ingest モードのプロファイルが指定されていない場合は 403。
  • 組織、リポジトリ、またはプロファイルが Enterprise アカウントから参照できない場合は 404。
  • 組織のスキャンバックログが上限に達している場合は 409。後で再試行してください。
  • repo_name と repos の両方を指定した場合、またはどちらも指定しなかった場合、あるいは repos が空の場合は 422。

承認

Authorization
string
header
必須

サービスユーザーの認証情報(接頭辞: cog_)

パスパラメータ

org_id
string
必須

組織 ID(プレフィックス: org-)

例:

"org-abc123def456"

ボディ

application/json

新しいコードスキャンを開始するためのリクエストボディ。

commit_sha
string | null

スキャン前にチェックアウトするコミット。

effort
enum<string> | null

スキャンの実行レベル: 'normal'(デフォルト)ではモデルの推論レベルを低めに設定し、調査をより大きなバッチで行います。'deep' ではパイプライン全体を実行します。

利用可能なオプション:
normal,
deep
host
string | null

既知の場合、リポジトリの Git ホスト。

interactive
boolean
デフォルト:false

true の場合、脅威モデリングと調査の間でスキャンを一時停止し、ユーザーのレビューを待ちます。

platform
string | null

スキャンのセッションの実行先: 組織に設定されたプラットフォームラベル(例: 'linux'、'windows'、'macos')またはアウトポスト(BYOB)プールの名前。大文字と小文字は区別されません。名前が両方に一致する場合は、プラットフォームが優先されます。省略すると組織のデフォルトが適用されます。認識されない値を指定すると 400 エラーが返され、エラー本文に利用可能なプラットフォームラベルとアウトポストプール名が一覧表示されます。

Maximum string length: 128
profile_id
string | null

スキャンに適用するスキャンプロファイル。

repo_name
string | null

スキャン対象のリポジトリの完全名。repo_name または repos のいずれか一方のみを与えてください。

repos
ScanRepoRequest · object[] | null

1 回のスキャンで対象となるリポジトリ。最初の項目がスキャンの主リポジトリです。repo_name または repos のいずれか一方のみを与えてください。

Maximum array length: 200
scan_type
enum<string> | null

実行するスキャンのタイプ。プロファイルが指定されている場合は、そのスキャンタイプと一致する必要があります。デフォルトはプロファイルのタイプ、またはプロファイルなしのスキャンでは 'security' です。セキュリティ以外のタイプにはプロファイルが必要で、プロファイルなしでは拒否されます。

利用可能なオプション:
security,
performance,
db-queries,
test-coverage,
dead-code,
code-quality,
cleanup,
telemetry,
accessibility,
compliance,
general,
migration-docs

レスポンス

成功レスポンス

1件のコードスキャン。

created_at
integer
必須

スキャンの作成日時(Unix秒)。

effort
enum<string>
必須

スキャンの実行レベル。'normal' はモデルの推論レベルを低くし、調査のバッチサイズを大きくします。'deep' はパイプライン全体を実行します。

利用可能なオプション:
normal,
deep
host
string | null
必須

既知の場合のリポジトリの Git ホスト。

org_id
string
必須

スキャンが属する組織。

profile
CodeScanProfileResponse · object | null
必須

スキャンの実行時に使用されたプロファイル(ある場合)。

repo_name
string
必須

スキャンの主要なリポジトリ。マルチリポジトリスキャンには、ここに記載されていない追加のリポジトリも含まれます。

scan_id
string
必須

スキャンの一意の識別子。

scan_type
enum<string>
必須

作成時に記録されるスキャンのタイプ。

利用可能なオプション:
security,
performance,
db-queries,
test-coverage,
dead-code,
code-quality,
cleanup,
telemetry,
accessibility,
compliance,
general,
migration-docs
status
enum<string>
必須

スキャンのステータス: waiting、pending、running、awaiting_user_input、completed、failed、または cancelled。

利用可能なオプション:
waiting,
pending,
running,
awaiting_user_input,
completed,
failed,
cancelled
url
string
必須

Devin webapp 内のスキャンページの URL。

outpost_pool_id
string | null

スキャンのセッションを実行するアウトポストプール(設定されている場合)。

platform
string | null

スキャンのセッションを実行するホスト型プラットフォームのラベル。スキャンがアウトポストプールまたは組織のデフォルトで実行される場合は Null。

repo_full_name
string | null

ホスト名を含む主リポジトリの識別情報(例:github.com/org/repo)。git ホストを持たない Perforce デポの場合は Null。