前置条件
前置条件
运行扫描前:
- 你需要具备使用代码扫描权限,以及使用 Devin 会话的权限。请参阅访问与权限。
- 你的组织必须拥有待扫描仓库的访问权限。
使用 /scan 启动扫描
- 在 composer 中输入
/scan,后面跟上你想查找的内容,并提及要扫描的仓库。例如:/scan find N+1 queries in @acme/api。你在 composer 中选中的仓库也会一并纳入。 - 发送消息。Devin 会启动一个新会话来配置扫描并将其打开。如果你只发送了
/scan,Devin 会给出一些示例扫描 (例如查找缓慢的数据库查询或未使用的代码) ,并询问你想查找什么。 - Devin 会根据你的请求选择 scan type,并用一句话说明,例如它将配置一个只查找 camelCase 变量名的自定义扫描。如果你想要别的方案,回复即可。
- Devin 会显示一张 Code scan setup 卡片。确认要扫描的 Repositories,也可以在 What should the scan focus on? 下补充指导。如果你没有提及仓库,Devin 会根据你最近的拉取请求,预选你参与最多的那个仓库。
- 点击 Start scan。只有在你提交该卡片后,Devin 才会创建扫描,随后分享该扫描会话的链接。若要取消配置,请点击 Dismiss。
非安全类扫描以正常投入程度无人值守运行。投入程度选项以及交互模式 (Devin 会暂停,以便你在调查前审阅 threat model) 仅适用于安全扫描。
Scan types
如需排查 vulnerabilities 和攻击面,请使用 Security Swarm scan。
审查并修复发现项
在启动扫描的会话中,或在该扫描的主会话中打开 Findings 选项卡,即可逐项处理发现项。处于 Open 状态的发现项按阶段分组:- Unassigned — 尚未启动修复会话。
- Assigned — 已启动修复会话,但还没有打开的 拉取请求。
- PR open — 该发现项已有打开的 拉取请求。
- Assign to Devin — 启动一个 Devin 会话来修复该发现项,并提交 拉取请求。点击 Open session 跟踪处理进展,点击 Open PR 审查结果。
- Dismiss — 移除无需处理的发现项。
规模化扫描
Scan new commits
任何类型的扫描完成后,在 Findings 选项卡中点击 Scan new commits,即可启动一次增量运行,仅扫描自该扫描上次运行完成以来新增的提交。此次运行沿用该扫描的现有配置,并将发现项归入同一个扫描。扫描正在运行时或归档后不会显示该按钮,且使用该按钮需要 Manage code scans 权限。如果没有新的提交,则不会启动运行。 你也可以在会话中让 Devin 扫描某个现有扫描的新提交。自动化
自动化 可以按计划或在事件触发时运行任意类型的扫描。选择 Code scan agent 类型,然后在 Scan 下:- 选择 Create a new scan,每次自动化触发时都会启动一次全新扫描。指定仓库、扫描类型和 Profile。非安全类扫描类型需要同类型的 scan profile。
- 选择一个已有扫描,每次自动化触发时扫描其新增的提交。该扫描必须已完成过一次运行。
API
Code Scans API 可以在不使用 web app 的情况下启动扫描、轮询扫描状态并读取发现项。当你通过 API 启动非安全类扫描时,必须传入该 scan type 对应 Profile 的profile_id;scan_type 默认取该 Profile 的类型。通过 API 启动的扫描不支持交互。
相关页面
- Security Swarm — 安全扫描、扫描 Profile、交互模式以及代码扫描权限。
- 通过 Devin API 触发代码扫描 — 端到端的 API 流程。
- 自动化 — 计划并触发扫描。

