Skip to content

[r2cn] 实现 Bot Token 管理并与现有权限体系融合 #1999

@benjamin-747

Description

@benjamin-747

[任务] 实现 Bot Token 管理并与现有权限体系融合

[任务分值] 30 分

[背景描述]

随着 Mega 系统支持 Bot 自动化操作,需要为 Bot 提供独立的 Token 机制 以进行 API 调用和操作授权。同时,为保证安全与一致性,Bot 的 Token 必须与系统 现有权限体系(如 extractor 权限、组织/仓库权限) 融合,避免越权操作。

当前问题:

  1. 缺乏独立访问凭证
  • Bot 无法像 Human 用户一样使用 token 进行身份验证
  • 无法限制操作范围
  1. 权限体系不统一
  • Bot 权限独立设计,与现有系统权限模型不一致
  • 可能导致越权或审计混乱
  1. 审计与管理不足
  • 无法追踪 Bot token 的生成、使用和撤销
  • Bot 操作和 Human 操作难以区分

因此,需要实现 Bot Token 管理功能,并将其与现有权限体系整合,实现安全、可控和可审计的访问控制。

[需求描述]

一、总体目标
1. 为 Bot 提供独立 Token 生成、管理、吊销 功能
2. 将 Bot Token 与现有权限体系融合,保证操作可控
3. 支持审计 Bot Token 使用情况
4. 确保 Human / Bot 操作区分清晰
二、功能需求

  1. Bot Token 管理
    Token 生成
  • 支持长期或短期 token
  • Token 绑定 Bot ID 与权限范围

Token 查询

  • 查询已生成 token 列表
  • 查看权限范围、有效期、状态

Token 吊销

  • 支持单个 token 吊销
  • 支持批量撤销(如 Bot 被禁用)

审计记录

  • 记录 token 的生成、使用、吊销操作
  • 标记 Human / Bot 操作
  1. 权限融合
    • 将 Bot Token 的权限与现有权限体系(如 extractor、组织/仓库权限)整合
    • 校验每次操作是否在 token 权限范围内
    • Bot token 操作日志中包含权限信息
    • 保证权限继承与覆盖逻辑清晰:
Bot Token
   ↓
查 installation
   ↓
确认 repo_id
   ↓
校验 permissions
   ↓
再走现有 ACL

[代码标准]

  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

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions