52ff2f80ad
CI/CD Pipeline / Validate Code Quality And Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Lint (push) Has been cancelled
Deploy / Deploy Staging (push) Has been cancelled
Deploy / Build Production Runtime Images (push) Has been cancelled
Deploy / Deploy Production (push) Has been cancelled
Deploy / Production Browser E2E (push) Has been cancelled
143 lines
6.9 KiB
Python
143 lines
6.9 KiB
Python
import sqlite3
|
||
from datetime import datetime
|
||
|
||
conn = sqlite3.connect("/app/tracker.db")
|
||
cursor = conn.cursor()
|
||
|
||
# 创建表
|
||
cursor.execute("""CREATE TABLE IF NOT EXISTS tasks (
|
||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
name TEXT NOT NULL,
|
||
description TEXT,
|
||
status TEXT DEFAULT 'pending',
|
||
phase TEXT,
|
||
milestone TEXT,
|
||
priority TEXT DEFAULT 'medium',
|
||
created_at TEXT,
|
||
updated_at TEXT
|
||
)""")
|
||
|
||
cursor.execute("""CREATE TABLE IF NOT EXISTS milestones (
|
||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
name TEXT NOT NULL,
|
||
phase TEXT,
|
||
start_date TEXT,
|
||
end_date TEXT,
|
||
status TEXT DEFAULT 'pending',
|
||
description TEXT,
|
||
created_at TEXT
|
||
)""")
|
||
|
||
# Phase 4 已完成的任务(56个)
|
||
phase4_tasks = [
|
||
("JWT Service 实现", "实现 access token 和 refresh token", "completed", "high"),
|
||
("Password Hasher 实现", "bcrypt 密码加密,cost=12", "completed", "high"),
|
||
("Redis Session Store", "基于 Redis 的 Session 存储", "completed", "high"),
|
||
("Email Service 实现", "SMTP 邮件服务", "completed", "high"),
|
||
("用户注册 API", "用户注册接口", "completed", "high"),
|
||
("邮箱验证 API", "邮箱验证接口", "completed", "high"),
|
||
("用户登录 API", "用户登录接口", "completed", "high"),
|
||
("用户登出 API", "用户登出接口", "completed", "high"),
|
||
("密码重置 API", "密码重置流程", "completed", "medium"),
|
||
("创建工作空间 API", "创建工作空间接口", "completed", "high"),
|
||
("邀请成员 API", "邀请成员接口", "completed", "high"),
|
||
("接受/拒绝邀请 API", "处理邀请接口", "completed", "high"),
|
||
("移除成员 API", "移除成员接口", "completed", "medium"),
|
||
("离开工作空间 API", "成员离开接口", "completed", "medium"),
|
||
("更新成员角色 API", "修改成员角色", "completed", "high"),
|
||
("列出工作空间 API", "查询工作空间列表", "completed", "medium"),
|
||
("工作空间详情 API", "工作空间详情", "completed", "medium"),
|
||
("列出成员 API", "查询成员列表", "completed", "medium"),
|
||
("Permission Checker", "权限检查器", "completed", "high"),
|
||
("订阅计划定义", "Free/Pro/Enterprise", "completed", "high"),
|
||
("升级订阅 API", "订阅升级接口", "completed", "high"),
|
||
("取消订阅 API", "订阅取消接口", "completed", "medium"),
|
||
("配额检查工具", "配额管理工具", "completed", "high"),
|
||
("UserRepository 接口", "User 仓储接口", "completed", "high"),
|
||
("UserRepository InMemory 实现", "InMemory 实现", "completed", "high"),
|
||
("WorkspaceRepository 接口", "Workspace 仓储接口", "completed", "high"),
|
||
("WorkspaceRepository InMemory 实现", "InMemory 实现", "completed", "high"),
|
||
("WorkspaceMemberRepository 接口", "Member 仓储接口", "completed", "high"),
|
||
("WorkspaceMemberRepository InMemory 实现", "InMemory 实现", "completed", "high"),
|
||
("WorkspaceInvitationRepository 接口", "Invitation 仓储接口", "completed", "high"),
|
||
("WorkspaceInvitationRepository InMemory 实现", "InMemory 实现", "completed", "high"),
|
||
("SubscriptionRepository 接口", "Subscription 仓储接口", "completed", "high"),
|
||
("SubscriptionRepository InMemory 实现", "InMemory 实现", "completed", "high"),
|
||
("PostgreSQL Repository 实现", "PostgreSQL 数据库适配器", "completed", "high"),
|
||
("Database Migration 脚本", "数据库迁移脚本", "completed", "high"),
|
||
("FastAPI 路由层", "API 路由实现", "completed", "high"),
|
||
("API 文档(Swagger)", "Swagger 文档", "completed", "medium"),
|
||
("错误处理中间件", "统一错误处理", "completed", "high"),
|
||
("参数验证", "Pydantic 参数验证", "completed", "high"),
|
||
("Docker 配置", "Docker Compose 配置", "completed", "high"),
|
||
("Kubernetes 配置", "K8s 部署配置", "completed", "medium"),
|
||
("健康检查接口", "Health Check API", "completed", "high"),
|
||
("Celery Worker 配置", "异步任务配置", "completed", "medium"),
|
||
("Redis 缓存集成", "Redis 缓存", "completed", "high"),
|
||
("GitHub Actions CI/CD", "CI/CD 流水线", "completed", "high"),
|
||
("单元测试(170个)", "170 个单元测试", "completed", "high"),
|
||
("集成测试", "12 个集成测试", "completed", "medium"),
|
||
("性能测试", "性能测试用例", "completed", "medium"),
|
||
("连接池优化", "5-6x 性能优化", "completed", "high"),
|
||
("API 文档编写", "API 使用文档", "completed", "medium"),
|
||
("部署文档", "部署指南", "completed", "medium"),
|
||
("开发文档", "开发指南", "completed", "medium"),
|
||
("MIT 开源许可", "MIT License", "completed", "low"),
|
||
("README 完善", "README.md", "completed", "medium"),
|
||
("CONTRIBUTING 指南", "贡献指南", "completed", "low"),
|
||
("CODE_OF_CONDUCT", "行为准则", "completed", "low"),
|
||
]
|
||
|
||
# Phase 4 未完成的任务(4个)
|
||
phase4_pending = [
|
||
("文件上传(OSS)", "阿里云 OSS 文件上传", "pending", "medium"),
|
||
("搜索功能", "全文搜索", "pending", "medium"),
|
||
("WebSocket 实时通信", "WebSocket 支持", "pending", "low"),
|
||
("Webhook 支持", "Webhook 事件推送", "pending", "low"),
|
||
]
|
||
|
||
now = datetime.now().isoformat()
|
||
|
||
# 插入 Phase 4 任务
|
||
for name, desc, status, priority in phase4_tasks + phase4_pending:
|
||
cursor.execute(
|
||
"""INSERT INTO tasks
|
||
(name, description, status, phase, priority, created_at, updated_at)
|
||
VALUES (?, ?, ?, ?, ?, ?, ?)""",
|
||
(name, desc, status, "Phase 4", priority, now, now),
|
||
)
|
||
|
||
# 插入里程碑
|
||
milestones = [
|
||
("认证与账号体系", "Phase 4", "2026-06-17", "2026-06-17", "completed", "用户注册、登录、密码管理"),
|
||
("多租户权限体系", "Phase 4", "2026-06-17", "2026-06-17", "completed", "工作空间、成员管理、权限控制"),
|
||
("订阅与计费体系", "Phase 4", "2026-06-17", "2026-06-17", "completed", "订阅计划、配额管理"),
|
||
("Repository 层", "Phase 4", "2026-06-17", "2026-06-17", "completed", "数据仓储层实现"),
|
||
("API 层", "Phase 4", "2026-06-17", "2026-06-17", "completed", "FastAPI 接口实现"),
|
||
("测试与部署", "Phase 4", "2026-06-17", "2026-06-17", "completed", "测试、Docker、CI/CD"),
|
||
]
|
||
|
||
for name, phase, start, end, status, desc in milestones:
|
||
cursor.execute(
|
||
"""INSERT INTO milestones
|
||
(name, phase, start_date, end_date, status, description, created_at)
|
||
VALUES (?, ?, ?, ?, ?, ?, ?)""",
|
||
(name, phase, start, end, status, desc, now),
|
||
)
|
||
|
||
conn.commit()
|
||
|
||
# 统计
|
||
cursor.execute('SELECT COUNT(*) FROM tasks WHERE status = "completed"')
|
||
completed = cursor.fetchone()[0]
|
||
cursor.execute("SELECT COUNT(*) FROM tasks")
|
||
total = cursor.fetchone()[0]
|
||
|
||
print(f"✅ Tracker 初始化完成!")
|
||
print(f" - 总任务数: {total}")
|
||
print(f" - 已完成: {completed}")
|
||
print(f" - 待完成: {total - completed}")
|
||
print(f" - 完成率: {completed/total*100:.1f}%")
|
||
|
||
conn.close()
|