- 
                Notifications
    
You must be signed in to change notification settings  - Fork 105
 
Open
Description
[任务] CL 支持Draft 状态
[任务分值] 20 分
[背景描述]
当前 Mega 系统中的 CL(Change List,变更列表)用于承载开发者的代码提交与合并流程。
现有流程中,CL 一经创建,即会进入正常的评审(Reviewer)与合并(Merge)流程。
但在实际开发中,存在以下问题:
当前 CL 状态仅有「Open / Merged / Closed」,无法区分「未准备评审」与「可评审」状态;
[需求描述]
- 
在 CL 模型中新增 “Draft” 状态;
 - 
支持开发者在创建或编辑 CL 时设置 “是否为 Draft”;
 - 
当 CL 处于 Draft 状态时:
- Reviewer 无法执行 Approve;
 - Merge Box 禁用 “Confirm Merge” 按钮;
 - UI 上有明显标识;
 
 - 
支持将 Draft 状态转为正常状态(Ready for Review)。
 
| 功能模块 | 行为 | 
|---|---|
| 创建 CL | 用户可选择是否勾选 “Draft” | 
| 编辑 CL | 支持修改 Draft 状态(Draft ↔ Open) | 
| Reviewer 面板 | 当 CL 为 Draft 时,不显示 Approve 按钮 | 
| Merge Box | Draft 状态下禁用 Merge 按钮,并显示提示:“CL 尚未准备评审” | 
| CL 列表 | Draft CL 在列表中添加灰色标签 DRAFT | 
| API 过滤 | GET /api/cl?status=draft 可筛选 Draft CL | 
[代码标准]
- 所有 PR 提交必须签署 
Signed-off-by和 使用GPG签名,即提交代码时(使用git commit命令时)至少使用-s -S两个参数,参考 Contributing Guide; - 所有 PR 提交必须通过 
GitHub Actions自动化测试,提交 PR 后请关注GitHub Actions结果; - 代码注释均需要使用英文;
 
[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;
[开发指导]
- 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;
 
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。
- Quanyi Ma [email protected]
 - Tianxing Ye [email protected]
 
[备注]
- 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 和 r2cn 开源实习计划 - 学生注册与审核