Skip to content

Commit 317c0fe

Browse files
committed
feat: 完善GitCode集成功能设计
- 扩展架构支持多平台代码托管集成 - 新增GitCode API集成和双向同步机制 - 优化数据库设计,新增同步状态跟踪 - 扩展API接口支持多平台Git操作 - 增强用户体验,支持智能平台选择和一键同步 - 完善技术实现方案,包含冲突处理和性能优化 - 更新项目计划,新增GitCode集成开发阶段 - 添加详细的GitCode集成说明文档
1 parent e3c253b commit 317c0fe

File tree

2 files changed

+230
-11
lines changed

2 files changed

+230
-11
lines changed

design.md

Lines changed: 158 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -84,17 +84,25 @@ github repo: https://github.com/PancrePal-xiaoyibao/kb_upload_genie.git
8484
- **版权合规检查**: 确保上传内容符合版权法规要求
8585
- **版权信息记录**: 完整记录版权相关信息和变更历史
8686

87+
管理员登录进去没有操作界面,界面内容:1. 上传记录表格式,其中失败的,可以人工审核,配批准按钮,人工审批通过后续保存上传到git 2.保留标准用户上传模块,让管理员可以上传文件 3.系统配置模块:包括:agent的提示词,模型选择(glm4.5系列),以及模型apikey输入模块,git参数配置模块,保存按钮。上面的UI交互你来设计。
88+
8789
## 3. 系统架构
8890

8991
### 3.1 整体架构
9092
```
9193
前端 (React/Vue) ↔ 后端API (Python/FastAPI) ↔ 数据库 (PostgreSQL)
9294
自定义 ↓
93-
GitHub API + AI服务集群
95+
GitHub API + GitCode API + AI服务集群
9496
9597
OpenAI兼容接口 + GLM4.5系列 + Gemini 2.5系列 + Moonshot Kimi系列 + StepFun Step系列 + 本地模型
9698
```
9799

100+
### 3.1.1 多平台代码托管集成
101+
- **GitHub**: 主要代码托管平台,面向国际用户
102+
- **GitCode**: 国内代码托管平台,提供更快的访问速度
103+
- **一键同步**: 支持GitHub与GitCode之间的双向同步
104+
- **智能路由**: 根据用户地理位置自动选择最优平台
105+
98106
### 3.2 技术栈选择
99107

100108
#### 3.2.1 前端技术栈
@@ -155,10 +163,20 @@ z- **AI服务**:
155163
- 分类管理
156164
- 智能分类推荐
157165

158-
#### 3.3.5 GitHub集成模块 (GitHub Integration)
159-
- GitHub API集成
160-
- 文件上传和管理
161-
- 目录结构同步
166+
#### 3.3.5 代码托管集成模块 (Git Platform Integration)
167+
- **GitHub集成**
168+
- GitHub API集成
169+
- 文件上传和管理
170+
- 目录结构同步
171+
- **GitCode集成**
172+
- GitCode API集成
173+
- 国内高速访问优化
174+
- 与GitHub的双向同步
175+
- **多平台管理**
176+
- 统一的Git操作接口
177+
- 智能平台选择
178+
- 同步状态监控
179+
- 冲突解决机制
162180

163181
#### 3.3.6 版权管理模块 (Copyright Module)
164182
- 版权状态管理
@@ -201,6 +219,9 @@ CREATE TABLE articles (
201219
copyright_notice TEXT, -- 自动生成的版权声明
202220
original_source VARCHAR(500), -- 原始来源
203221
github_path VARCHAR(500),
222+
gitcode_path VARCHAR(500), -- GitCode路径
223+
sync_status VARCHAR(20) DEFAULT 'none', -- none, github_only, gitcode_only, synced, conflict
224+
last_sync_time TIMESTAMP, -- 最后同步时间
204225
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
205226
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
206227
);
@@ -214,6 +235,7 @@ CREATE TABLE categories (
214235
path VARCHAR(500) NOT NULL,
215236
parent_id INTEGER REFERENCES categories(id),
216237
github_path VARCHAR(500),
238+
gitcode_path VARCHAR(500), -- GitCode路径
217239
is_active BOOLEAN DEFAULT true,
218240
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
219241
);
@@ -233,11 +255,30 @@ CREATE TABLE reviews (
233255
);
234256
```
235257

258+
#### 4.1.5 同步记录表 (sync_records)
259+
```sql
260+
CREATE TABLE sync_records (
261+
id SERIAL PRIMARY KEY,
262+
article_id INTEGER REFERENCES articles(id),
263+
source_platform VARCHAR(20), -- github, gitcode
264+
target_platform VARCHAR(20), -- github, gitcode
265+
sync_type VARCHAR(20), -- upload, update, delete
266+
status VARCHAR(20), -- pending, success, failed, conflict
267+
error_message TEXT,
268+
source_commit_hash VARCHAR(40),
269+
target_commit_hash VARCHAR(40),
270+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
271+
completed_at TIMESTAMP
272+
);
273+
```
274+
236275
### 4.2 数据关系
237276
- 用户 1:N 文章
238277
- 分类 1:N 文章
239278
- 文章 1:N 审核记录
279+
- 文章 1:N 同步记录
240280
- 分类支持树形结构(parent_id自引用)
281+
- 同步记录追踪GitHub与GitCode之间的双向同步状态
241282

242283
## 5. API设计
243284

@@ -284,11 +325,34 @@ POST /api/copyright/generate-notice # 生成版权声明
284325
PUT /api/copyright/update/{article_id} # 更新版权信息
285326
```
286327

287-
### 5.2 GitHub集成API
328+
### 5.2 多平台Git集成API
329+
330+
#### 5.2.1 GitHub集成API
288331
```
289-
GET /api/github/repos # 获取仓库信息
290-
GET /api/github/tree # 获取目录结构
332+
GET /api/github/repos # 获取GitHub仓库信息
333+
GET /api/github/tree # 获取GitHub目录结构
291334
POST /api/github/upload # 上传文件到GitHub
335+
GET /api/github/status # 获取GitHub连接状态
336+
```
337+
338+
#### 5.2.2 GitCode集成API
339+
```
340+
GET /api/gitcode/repos # 获取GitCode仓库信息
341+
GET /api/gitcode/tree # 获取GitCode目录结构
342+
POST /api/gitcode/upload # 上传文件到GitCode
343+
GET /api/gitcode/status # 获取GitCode连接状态
344+
```
345+
346+
#### 5.2.3 同步管理API
347+
```
348+
POST /api/sync/github-to-gitcode/{article_id} # GitHub同步到GitCode
349+
POST /api/sync/gitcode-to-github/{article_id} # GitCode同步到GitHub
350+
POST /api/sync/bidirectional/{article_id} # 双向同步
351+
GET /api/sync/status/{article_id} # 获取同步状态
352+
GET /api/sync/conflicts # 获取同步冲突列表
353+
POST /api/sync/resolve-conflict/{sync_id} # 解决同步冲突
354+
GET /api/sync/history/{article_id} # 获取同步历史
355+
POST /api/sync/batch # 批量同步
292356
```
293357

294358
### 5.3 AI服务API
@@ -501,7 +565,12 @@ AI_CONFIG = {
501565
2. **第二阶段(3周)**: 核心功能开发
502566
3. **第三阶段(2周)**: AI审核集成
503567
4. **第四阶段(2周)**: GitHub集成
504-
5. **第五阶段(1周)**: 测试和优化
568+
5. **第五阶段(2周)**: GitCode集成和多平台同步
569+
- GitCode API集成
570+
- 双向同步机制实现
571+
- 冲突检测和解决
572+
- 智能平台选择
573+
6. **第六阶段(1周)**: 测试和优化
505574

506575
### 10.2 里程碑
507576
- MVP版本发布
@@ -512,8 +581,11 @@ AI_CONFIG = {
512581

513582
### 11.1 技术风险
514583
- GitHub API限制
584+
- GitCode API限制和稳定性
515585
- AI服务稳定性
586+
- 多平台同步冲突
516587
- 性能瓶颈
588+
- 网络连接稳定性(国内外访问差异)
517589

518590
### 11.2 业务风险
519591
- 用户接受度
@@ -532,6 +604,10 @@ AI_CONFIG = {
532604
- 移动端应用
533605
- 协作编辑功能
534606
- 评论和讨论系统
607+
- 更多代码托管平台集成(Gitee、Coding、GitLab等)
608+
- 多平台统计和分析面板
609+
- 自动化同步策略配置
610+
- 跨平台协作工作流
535611

536612
### 12.2 技术扩展
537613
- 微服务架构
@@ -551,6 +627,9 @@ AI_CONFIG = {
551627
- **自动分类识别**: 系统自动识别文章分类,用户无需手动选择
552628
- **配置记忆**: 系统记住用户的上传配置,下次上传时自动应用
553629
- **智能建议**: 基于历史数据提供个性化建议
630+
- **智能平台选择**: 根据用户地理位置和网络状况自动选择最优平台
631+
- **一键同步**: 支持GitHub与GitCode之间的一键双向同步
632+
- **同步状态监控**: 实时显示多平台同步状态和进度
554633

555634
### 13.3 用户友好设计
556635
- **拖拽上传**: 支持文件拖拽上传
@@ -578,9 +657,77 @@ AI_CONFIG = {
578657
- **安全扫描**: 定期进行安全漏洞扫描
579658
- **用户反馈**: 建立用户反馈收集机制
580659

660+
## 15. GitCode集成详细说明
661+
662+
### 15.1 GitCode平台优势
663+
- **国内高速访问**: 为国内用户提供更快的访问速度
664+
- **本土化服务**: 更好的中文支持和本土化功能
665+
- **合规性**: 符合国内数据安全和隐私保护要求
666+
- **生态兼容**: 与国内开发者生态系统更好集成
667+
668+
### 15.2 同步策略
669+
#### 15.2.1 智能同步
670+
- **地理位置检测**: 自动检测用户地理位置,优先选择最优平台
671+
- **网络质量评估**: 实时评估到各平台的网络质量
672+
- **负载均衡**: 根据平台负载情况智能分配
673+
674+
#### 15.2.2 同步模式
675+
- **实时同步**: 文件上传后立即同步到另一平台
676+
- **定时同步**: 按设定时间间隔批量同步
677+
- **手动同步**: 用户手动触发同步操作
678+
- **选择性同步**: 用户可选择特定文件或目录进行同步
679+
680+
### 15.3 冲突处理机制
681+
#### 15.3.1 冲突检测
682+
- **内容比较**: 基于文件内容哈希值检测冲突
683+
- **时间戳比较**: 比较最后修改时间
684+
- **版本追踪**: 追踪文件版本变更历史
685+
686+
#### 15.3.2 冲突解决
687+
- **自动合并**: 对于非冲突性修改自动合并
688+
- **用户选择**: 冲突时提供选项让用户决定
689+
- **版本保留**: 保留冲突版本供后续处理
690+
- **回滚机制**: 支持同步操作回滚
691+
692+
### 15.4 用户界面设计
693+
#### 15.4.1 平台选择界面
694+
- **平台状态显示**: 实时显示各平台连接状态
695+
- **速度测试**: 提供网络速度测试功能
696+
- **推荐平台**: 基于用户位置和网络状况推荐最优平台
697+
698+
#### 15.4.2 同步管理界面
699+
- **同步状态面板**: 显示所有文件的同步状态
700+
- **同步历史**: 查看详细的同步操作历史
701+
- **冲突管理**: 专门的冲突处理界面
702+
- **批量操作**: 支持批量同步和管理操作
703+
704+
### 15.5 技术实现要点
705+
#### 15.5.1 API适配
706+
- **统一接口**: 为GitHub和GitCode提供统一的操作接口
707+
- **差异处理**: 处理两个平台API的差异
708+
- **错误处理**: 统一的错误处理和重试机制
709+
710+
#### 15.5.2 数据一致性
711+
- **事务处理**: 确保跨平台操作的原子性
712+
- **数据校验**: 同步前后的数据完整性校验
713+
- **状态同步**: 保持本地数据库与远程平台状态一致
714+
715+
### 15.6 性能优化
716+
- **并行同步**: 支持多文件并行同步
717+
- **增量同步**: 只同步变更的部分
718+
- **压缩传输**: 对大文件进行压缩传输
719+
- **缓存机制**: 缓存常用数据减少API调用
720+
721+
### 15.7 安全考虑
722+
- **访问令牌管理**: 安全存储和管理各平台的访问令牌
723+
- **传输加密**: 确保数据传输过程的安全性
724+
- **权限控制**: 细粒度的权限控制机制
725+
- **审计日志**: 完整的操作审计日志
726+
581727
---
582728

583-
**文档版本**: v1.0
729+
**文档版本**: v1.1
584730
**创建日期**: 2024年
585731
**最后更新**: 2024年
586-
**维护人员**: 开发团队
732+
**维护人员**: 开发团队
733+
**更新内容**: 添加GitCode集成和多平台同步功能

docs/development-log.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,57 @@ GitHub上传分类智能前端系统 - 一个基于FastAPI + React的文件上
135135
- RAG平台集成:提供增值服务
136136
- **市场价值**: 填补市场空白,解决97%用户不会Git的痛点
137137

138+
### 2024-12-19 GitCode集成功能详细设计完善
139+
140+
#### 设计优化内容
141+
1. **架构扩展**
142+
- 将GitHub集成扩展为多平台代码托管集成
143+
- 新增GitCode API集成模块
144+
- 设计双向同步机制
145+
146+
2. **数据库设计优化**
147+
- 文章表新增gitcode_path、sync_status、last_sync_time字段
148+
- 分类表新增gitcode_path字段
149+
- 新增sync_records表跟踪同步状态
150+
151+
3. **API接口扩展**
152+
- 新增GitCode集成API(仓库信息、目录结构、文件上传等)
153+
- 新增同步管理API(双向同步、状态查询、冲突解决等)
154+
- 统一多平台Git操作接口
155+
156+
4. **用户体验优化**
157+
- 智能平台选择(基于地理位置和网络状况)
158+
- 一键同步功能
159+
- 实时同步状态监控
160+
- 冲突处理界面
161+
162+
5. **技术实现要点**
163+
- 统一接口设计,屏蔽平台差异
164+
- 事务处理确保数据一致性
165+
- 并行同步和增量同步优化性能
166+
- 完善的安全机制和审计日志
167+
168+
#### 项目计划调整
169+
- 新增"第五阶段:GitCode集成和多平台同步(2周)"
170+
- 包含API集成、同步机制、冲突处理、智能选择等功能
171+
172+
#### 风险评估更新
173+
- 新增GitCode API限制和稳定性风险
174+
- 新增多平台同步冲突风险
175+
- 新增网络连接稳定性风险
176+
177+
#### 功能扩展规划
178+
- 支持更多代码托管平台(Gitee、Coding、GitLab等)
179+
- 多平台统计和分析面板
180+
- 自动化同步策略配置
181+
- 跨平台协作工作流
182+
183+
#### 技术特色
184+
- **国内外双重覆盖**:GitHub满足国际需求,GitCode优化国内体验
185+
- **智能化同步**:自动选择最优平台,智能处理冲突
186+
- **用户友好**:一键操作,实时状态反馈
187+
- **企业级可靠性**:完善的错误处理和数据一致性保证
188+
138189
#### 下一步计划
139190

140191
### 阶段一: 基础架构优化 (1-2个月)
@@ -219,6 +270,27 @@ GitHub上传分类智能前端系统 - 一个基于FastAPI + React的文件上
219270
- [ ] 自动同步机制
220271
- [ ] 版本控制流程
221272

273+
### 阶段五: GitCode集成和多平台同步 (2周)
274+
1. **GitCode API集成**
275+
- [ ] GitCode API接口对接
276+
- [ ] 仓库信息获取和管理
277+
- [ ] 文件上传和目录结构同步
278+
279+
2. **双向同步机制**
280+
- [ ] GitHub ↔ GitCode双向同步
281+
- [ ] 增量同步和冲突检测
282+
- [ ] 智能平台选择算法
283+
284+
3. **同步管理界面**
285+
- [ ] 同步状态监控面板
286+
- [ ] 冲突处理界面
287+
- [ ] 一键同步功能
288+
289+
4. **多平台统一管理**
290+
- [ ] 统一Git操作接口
291+
- [ ] 多平台统计分析
292+
- [ ] 自动化同步策略配置
293+
222294
#### 开发环境
223295
- Node.js: v18+
224296
- Python: 3.8+

0 commit comments

Comments
 (0)