Skip to content

[r2cn] 实现基础版 CLA 签署与校验流程(CL 提交前强制校验) #1940

@benjamin-747

Description

@benjamin-747

[任务] 实现基础版 CLA 签署与校验流程(CL 提交前强制校验)

[任务分值] 25 分

[背景描述]

为保障代码知识产权与法律合规性,系统需要在用户提交 CL(Change List)前确认其已签署 CLA(Contributor License Agreement)。

本次需求目标为实现一个 简单可用的 CLA 签署流程,满足最基本的合规需求:

  • 在 CL 提交或 check 阶段进行校验
  • 若未签署则提示
  • 提供跳转页面进行签署(目前仅“同意”按钮)

该版本为 MVP,不涉及复杂法律版本管理或电子签名流程。

[需求描述]

一、目标

  • 实现 CLA 签署状态记录
  • 在 CL 提交 / check 阶段校验 CLA
  • 未签署用户必须先完成签署才能继续提交 CL

二、功能需求

  1. CLA 状态模型

  2. CL 提交阶段校验

在以下流程增加校验逻辑:

  • 提交 CL
  • 或执行 CL check / 构建触发前

校验逻辑:

  • 若用户未签署 CLA:
  • 返回明确错误提示
  • 提供前端可识别的错误类型(如 CLA_NOT_SIGNED)
  • 阻止 CL 进入构建流程
  1. CLA 签署页面

新增页面:

  • 显示 CLA 文本内容
  • 页面底部提供:
  • “我同意”按钮

点击“同意”后:

  • 更新用户 cla_signed = true
  • 记录签署时间
  • 返回原 CL 页面
  1. 前端交互逻辑(后端同学忽略)

当 CL 提交失败且错误为 CLA_NOT_SIGNED 时:

  • 展示提示信息:
    • “您尚未签署 CLA,请先签署”
  • 提供跳转链接
  • 签署完成后可重新提交 CL

[代码标准]

  1. 所有 PR 提交必须签署 Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide
  2. 所有 PR 提交必须通过 GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
  3. 代码注释均需要使用英文;

[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;

[开发指导]

  1. 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;

[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。

  1. Quanyi Ma genedna@gmail.com
  2. Tianxing Ye yetianxing2014@gmail.com

[备注]

  1. 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务r2cn 开源实习计划 - 学生注册与审核

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions