- 组织 (
/v3/organizations/{org_id}/code-scans/...) 适用于单个组织,需要组织级UseCodeScans(写入) 或ViewCodeScans(读取) 权限。 - 企业 (
/v3/enterprise/...) 适用于企业中的所有组织,需要企业级UseAccountCodeScans(写入) 或ViewAccountCodeScans(读取) 权限。由于扫描归属于某个组织,创建扫描和修复端点的路径中仍需包含org_id。
端点
这些操作同样适用于
/v3beta1/... 路径,请求和响应结构完全相同。该表涵盖扫描工作流程;v3 OpenAPI 规范还在两个作用域下提供自动扫描调度 (POST .../code-scans/{scan_id}/auto-scan) 和 Profile 重新分配 (PUT .../code-scans/{scan_id}/profile) 。
以下步骤以组织作用域为例;如果你的凭据限定为企业作用域,请改用企业路径和相应权限。
典型流程
1
选择 Profile(可选)
调用 列出代码扫描 Profile,选择一个
discover 模式的 Profile。若要使用默认安全扫描,请省略 Profile。2
启动扫描
201,并包含扫描记录。请保存 scan_id。409 表示该组织的扫描待办列表已满,请稍后重试。3
轮询直至完成
调用 列出代码扫描 (按
repo_name 过滤) ,直到扫描的 status 为 completed (或 failed / cancelled) 。这三种状态均为终止状态。awaiting_user_input 仅适用于从 web app 启动的交互式扫描;通过 API 启动的扫描均为非交互式,不会进入该状态。4
查看发现项
使用
scan_id 调用 列出代码扫描发现项,分页查看发现项;也可按 severity 和 status 过滤。5
修复
调用 修复代码扫描发现项,让 Devin 创建拉取请求以修复发现项。
导入扫描
ingest 模式的 Profile,通过 attachments API 上传扫描器报告 (这是一个组织级端点,除代码扫描权限外,还需要 UseDevinSessions 组织权限) ,然后使用 profile_id 和 attachment_urls 调用 启动导入扫描 (或相应的 企业 端点) 。
