[r2cn] CL 支持 Draft 状态
[任务] 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 开源实习计划 - 学生注册与审核
任务创建成功。
/request-assign
认领失败:你已经存在认领中的任务了。
/request-assign
认领成功:等待导师审核,请及时联系导师进行审核。
/intern-approve
认领审核成功:已将该任务分配给学生。