-
Notifications
You must be signed in to change notification settings - Fork 123
Open
Description
[任务] 实现 Bot Token 管理并与现有权限体系融合
[任务分值] 30 分
[背景描述]
随着 Mega 系统支持 Bot 自动化操作,需要为 Bot 提供独立的 Token 机制 以进行 API 调用和操作授权。同时,为保证安全与一致性,Bot 的 Token 必须与系统 现有权限体系(如 extractor 权限、组织/仓库权限) 融合,避免越权操作。
当前问题:
- 缺乏独立访问凭证
- Bot 无法像 Human 用户一样使用 token 进行身份验证
- 无法限制操作范围
- 权限体系不统一
- Bot 权限独立设计,与现有系统权限模型不一致
- 可能导致越权或审计混乱
- 审计与管理不足
- 无法追踪 Bot token 的生成、使用和撤销
- Bot 操作和 Human 操作难以区分
因此,需要实现 Bot Token 管理功能,并将其与现有权限体系整合,实现安全、可控和可审计的访问控制。
[需求描述]
一、总体目标
1. 为 Bot 提供独立 Token 生成、管理、吊销 功能
2. 将 Bot Token 与现有权限体系融合,保证操作可控
3. 支持审计 Bot Token 使用情况
4. 确保 Human / Bot 操作区分清晰
二、功能需求
- Bot Token 管理
Token 生成
- 支持长期或短期 token
- Token 绑定 Bot ID 与权限范围
Token 查询
- 查询已生成 token 列表
- 查看权限范围、有效期、状态
Token 吊销
- 支持单个 token 吊销
- 支持批量撤销(如 Bot 被禁用)
审计记录
- 记录 token 的生成、使用、吊销操作
- 标记 Human / Bot 操作
- 权限融合
• 将 Bot Token 的权限与现有权限体系(如 extractor、组织/仓库权限)整合
• 校验每次操作是否在 token 权限范围内
• Bot token 操作日志中包含权限信息
• 保证权限继承与覆盖逻辑清晰:
Bot Token
↓
查 installation
↓
确认 repo_id
↓
校验 permissions
↓
再走现有 ACL
[代码标准]
- 所有 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 genedna@gmail.com
- Tianxing Ye yetianxing2014@gmail.com
[备注]
- 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 和 r2cn 开源实习计划 - 学生注册与审核
Reactions are currently unavailable