Skip to main content
代码扫描 API 可让你无需使用 Web 应用即可启动扫描、轮询扫描状态并读取发现项。与 v3 API 的其他部分一样,每项操作均提供两个作用域,遵循相同的组织与企业划分
  • 组织 (/v3/organizations/{org_id}/code-scans/...) 适用于单个组织,需要组织级 UseCodeScans (写入) 或 ViewCodeScans (读取) 权限。
  • 企业 (/v3/enterprise/...) 适用于企业中的所有组织,需要企业级 UseAccountCodeScans (写入) 或 ViewAccountCodeScans (读取) 权限。由于扫描归属于某个组织,创建扫描和修复端点的路径中仍需包含 org_id
两个作用域均使用服务用户 API 密钥或个人访问令牌进行身份验证,并使用相同的请求和响应格式。

端点

这些操作同样适用于 /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_id409 表示该组织的扫描待办列表已满,请稍后重试。
3

轮询直至完成

调用 列出代码扫描 (按 repo_name 过滤) ,直到扫描的 statuscompleted (或 failed / cancelled) 。这三种状态均为终止状态。awaiting_user_input 仅适用于从 web app 启动的交互式扫描;通过 API 启动的扫描均为非交互式,不会进入该状态。
4

查看发现项

使用 scan_id 调用 列出代码扫描发现项,分页查看发现项;也可按 severitystatus 过滤。
5

修复

调用 修复代码扫描发现项,让 Devin 创建拉取请求以修复发现项。

导入扫描

要让 Devin 对其他扫描器生成的发现项进行分流,请在 Web 应用中创建一个 ingest 模式的 Profile,通过 attachments API 上传扫描器报告 (这是一个组织级端点,除代码扫描权限外,还需要 UseDevinSessions 组织权限) ,然后使用 profile_idattachment_urls 调用 启动导入扫描 (或相应的 企业 端点) 。