Skip to content

Latest commit

 

History

History
140 lines (112 loc) · 2.47 KB

design_doc.md

File metadata and controls

140 lines (112 loc) · 2.47 KB

GitHub Repository Cleaner 设计文档

1. 项目概述

1.1 目标

创建一个安全可靠的github 相关能力的命令行工具库

  1. github_repo_cleaner: 用于批量删除GitHub账户下的公开仓库。
  2. WIP

1.2 核心需求

  • 安全地删除指定GitHub用户的公开仓库
  • 提供友好的用户界面和操作反馈
  • 确保操作的可控性和安全性
  • 支持批量操作和确认

2. 技术架构

2.1 核心组件

  • Repository类:仓库数据模型
  • GitHubReposCleaner类:核心业务逻辑处理
  • CLI接口:用户交互层
  • 批量处理模块:处理批量确认和删除

2.2 依赖

  • requests: HTTP请求处理
  • click: 命令行界面框架
  • rich: 终端美化和进度显示
  • dataclasses: 数据类支持
  • typing: 类型注解支持

3. 详细设计

3.1 数据模型

@dataclass
class Repository:
    name: str
    full_name: str
    private: bool

3.2 核心类设计

GitHubReposCleaner类负责:

  • 初始化GitHub API连接
  • 获取仓库列表
  • 执行删除操作
  • 错误处理
  • Token验证
  • 权限检查

3.3 批量处理机制

  • 支持自定义批量大小
  • 批量确认机制
  • 进度追踪
  • 错误恢复

3.4 安全机制

  • Token验证
  • 权限检查
  • 操作确认
  • 错误恢复
  • 限流保护

3.5 用户界面

  • 命令行参数配置
  • 批量确认界面
  • 进度显示
  • 操作确认提示
  • 错误反馈

4. 错误处理

4.1 异常类型

  • API请求异常
  • 认证错误
  • 网络错误
  • 权限错误
  • 用户中断

4.2 处理策略

  • 详细的错误日志
  • 用户友好的错误提示
  • 操作回滚机制
  • 批量操作的错误恢复

5. 测试策略

5.1 测试范围

  • 单元测试
  • 集成测试
  • 用户界面测试
  • 批量处理测试

5.2 测试用例

  • API调用测试
  • 错误处理测试
  • 用户交互测试
  • 批量操作测试

6. 安全考虑

6.1 数据安全

  • Token安全存储
  • 敏感信息保护
  • 批量操作的安全控制

6.2 操作安全

  • 批量确认机制
  • 权限验证
  • 数据备份建议
  • 操作限流

7. 维护计划

7.1 日常维护

  • 依赖更新
  • 安全补丁
  • 功能优化
  • 用户反馈收集

7.2 监控指标

  • 操作成功率
  • 错误率统计
  • 用户反馈
  • 批量操作效率

8. 版本历史

v1.1.0

  • 添加批量确认功能
  • 优化用户界面
  • 改进错误处理
  • 添加自定义批量大小

v1.0.0

  • 初始版本发布
  • 基本删除功能
  • 安全机制实现
  • 用户界面实现