feat: generate docs

This commit is contained in:
2026-01-11 12:24:46 +08:00
parent 14aa3436cf
commit cd50716dc6
12 changed files with 32 additions and 107 deletions

View File

@@ -7,7 +7,6 @@
1.`controllers/` 对应模块下创建/修改 `dto.ts` 定义输入。
2.`index.ts` 中编写类,使用 `@Controller``@Post/Get` 等装饰器。
3. 如果涉及数据库,修改 `schema.prisma` 并运行 `npx prisma db push`
4. 在前端 `pages/` 对应的 `service.ts` 中添加调用方法。
## 2. 核心逻辑位置
@@ -17,6 +16,6 @@
## 3. 交互规范
- 前端请求请使用 `@shared` 别名导入 `net` 实例
- 前端 `import` 代码优先使用路径别名,例如:`import {net} from '@utils'`
- 始终保持代码简洁,优先使用现有的 `libs` 工具类。
- 修改代码后,务必确认 `pnpm dev` 是否能正常编译通过。

View File

@@ -28,7 +28,12 @@ web 项目代码组织如下:
│ └── ...
```
## 3. 响应格式
## 3. 代码规范
- 注释符合 jsdoc 规范
- 代码简洁避免冗余移除无用的代码引用、变量、函数和css样式
## 4. 响应格式
- 后端统一返回 `APIResponse<T>` 结构:
@@ -38,12 +43,12 @@ web 项目代码组织如下:
- 由 `RouteScanner` 中的 `wrapControllerMethod` 自动封装。
## 3. 异步处理
## 5. 异步处理
- 统一使用 `async/await`。
- 后端错误通过抛出异常由 `exception.ts` 中间件统一捕获。
## 4. 格式化
## 6. 格式化
- 使用 Biome 进行 Lint 和 Format。
- 提交代码前建议运行 `pnpm --filter web format`。

View File

@@ -1,14 +1,17 @@
# ADR 0001: 技术选型
## 背景
需要构建一个轻量级、易扩展且易于本地部署的 CI 系统。
## 决策
- **语言**: 全栈 TypeScript确保模型定义在前后端的一致性。
- **后端框架**: Koa。相比 Express 更加轻量,利用 async/await 处理异步中间件更优雅。
- **数据库**: SQLite。CI 系统通常是单机或小规模使用SQLite 无需独立服务,运维成本极低。
- **执行工具**: `zx`。相比原生的 `child_process``zx` 处理 Shell 交互更加直观和安全。
## 后果
- 优势:开发效率极高,部署简单。
- 挑战SQLite 在极高并发写入(如数百个任务同时输出日志)时可能存在性能瓶颈。

View File

@@ -1,15 +1,18 @@
# ADR 0002: 状态管理
## 背景
需要在前端管理用户信息、全局配置以及各页面的复杂 UI 状态。
## 决策
- **全局状态**: 使用 Zustand。
- **理由**:
- 相比 Redux 模板代码极少。
- 相比 Context API 性能更好且不引起全量重绘。
- 符合 React 19 的 Concurrent 模式。
- **理由**:
- 相比 Redux 模板代码极少。
- 相比 Context API 性能更好且不引起全量重绘。
- 符合 React 19 的 Concurrent 模式。
- **持久化**: 对关键状态(如 Token使用 Zustand 的 persist 中间件。
## 后果
状态管理逻辑高度内聚在 `apps/web/src/stores` 中。

View File

@@ -1,12 +1,15 @@
# ADR 0003: 流水线执行策略
## 背景
如何确保流水线执行的隔离性与可靠性。
## 决策
- **工作目录**: 每个项目在服务器上拥有独立的 `projectDir`
- **执行器**: 采用线性执行。目前不支持多步骤并行,以确保日志顺序的确定性。
- **队列**: 使用内存队列 + 数据库扫描实现。系统重启后能通过数据库中的 `pending` 状态恢复任务。
## 后果
目前的隔离级别为目录级。未来可能需要引入 Docker 容器化执行以增强安全性。

View File

@@ -10,10 +10,12 @@
## 进行中 🚧
- 部署记录的分页查询优化
- 优化: 移除菜单环境管理及页面(目前无用)
- 优化: 部署记录的分页查询
- 修复: 表单必填项,*号和 label 不在一行
- 修复:项目详情页,未选中 tab【部署记录】还会拉取日志信息
## 待办 📅
- [ ] Gitea Webhook 自动触发
- [ ] 用户权限管理 (RBAC)
- [ ] 日志实时 Websocket 推送