用途
Miro Code Review 用于把一次代码审查(pull request / merge request、本地未提交改动,或分支对比)转换为 Miro 白板上的可视化审查材料。它面向需要在评审前快速把握变更全貌的团队,帮助审查者不必仅依赖逐行 diff 来理解改动。
主要能力
- 平台无关的变更提取:从 URL 或已配置的 git remote 判断代码托管平台,不预设使用 gh,而是通过
command -v <cli>检测本地可用工具。GitHub 场景使用 gh CLI,GitLab 场景使用 glab CLI;若没有对应的第一方 CLI,则回退到使用用户已配置凭据(如 ~/.netrc、$GITHUB_TOKEN、$GITLAB_TOKEN)的 REST 调用。本地或分支对比场景使用普通 git 即可。 - 变更分析:对每个改动文件判定状态(新增、修改、删除)、变更摘要与风险等级;进行架构分析(新增模块、依赖变化、接口/API 修改、模式变化、破坏性变更)与安全分析(输入校验、认证授权变更、敏感数据处理、注入漏洞、加密使用、配置安全)。
- 风险分级:高风险包括安全敏感、认证授权、数据库迁移、核心业务逻辑、破坏性 API 变更、加密;中风险包括 API 变更、配置、共享工具、新依赖、数据模型变更;低风险包括测试、文档、样式、本地化、内部重构。
- 内容裁剪(triage):只有当白板材料能为审查者提供 diff 之外的价值时才创建。若改动≤2 个文件且改动行数<20 且无高风险文件且未触及安全敏感路径,则跳过 Miro 可视化,仅在聊天中报告。
- Miro 白板内容创建:可创建文件变更表格(状态、文件、变更、风险四列并按状态与风险着色)、文档(主摘要、架构分析、安全分析、超大型 PR 的分子系统文档)与图表(流程图、类图、时序图、ER 图等)。
- 变更可视化:默认以左右并排的 before/after 图表对呈现增量;当变更纯为新增且 ≤3 个新节点/边时,改用单个带注释的 after 图表。使用标签前缀 [ADDED]、[REMOVED]、[UPDATED] 标记变更,并尽量附带 Mermaid classDef 颜色层。
- 链接回写:内容创建完成后,将链接以
<!-- miro-pr-docs:start -->与<!-- miro-pr-docs:end -->界定块追加到 PR/MR 现有描述中,原地替换而非覆盖用户撰写部分。
使用方式
用户需要提供 Miro 白板 URL 以及以下来源之一:PR/MR 编号、owner/repo#number(或 GitLab 风格的 group/project!number)、完整 PR/MR URL、关键字 "local changes",或用于与默认分支对比的分支名。
工作流程包括:识别来源与平台并声明检测结果;提取元数据与 unified diff;确定源码链接基础 URL(LINK_HOST、LINK_SHA、LINK_BASE_SHA、LINK_TEMPLATE);分析变更;风险分级;triage 决定创建哪些材料;在 Miro 白板创建内容;最后将链接回写到 PR/MR。
典型命令示例:
GitHub(当前仓库):
gh pr view $PR_NUMBER --json title,body,author,files,additions,deletions
gh pr diff $PR_NUMBER
GitLab(当前项目):
glab mr view $MR_NUMBER -F json
glab mr diff $MR_NUMBER
本地改动:
git status --porcelain
git diff HEAD
分支对比:
DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')
git log $DEFAULT_BRANCH..HEAD --oneline
git diff $DEFAULT_BRANCH...HEAD
适用场景
适合需要将代码审查可视化的大型或复杂变更,尤其是涉及多组件流程、结构性重构、API/集成变更、数据库迁移等难以仅凭 diff 把握的场景。也支持按 PR 规模(Trivial、Small、Medium、Large、Very Large)调整文档与图表数量。
限制
- 当改动极小(≤2 文件、<20 行、无高风险、无安全敏感路径)时会主动跳过可视化。
- 对于本地改动或无远程的分支,不会凭空生成 URL,仅渲染纯路径。
- 当 LINK_BASE_SHA 不可达(浅克隆、历史被裁剪)时,before/after 图表对会降级为单个带注释的 after 图表。
- 图表节点不支持可点击链接,只能把 URL 作为标签第二行供复制。
- 收费、价格、平台等信息暂未提供。