Skip to content

Commit c72b2e2

Browse files
kookseeCopilot
andauthored
Feat/upgrade (#22)
* chore: add code review templates and update dependencies * chore: format gemini.json * Update .github/PULL_REQUEST_TEMPLATE.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 2db8f44 commit c72b2e2

30 files changed

+1294
-192
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
## Description / 描述
2+
3+
<!-- Briefly describe what this PR does / 简要描述此 PR 的内容 -->
4+
5+
## Type of Change / 变更类型
6+
7+
- [ ] 🐛 Bug fix / 缺陷修复
8+
- [ ] ✨ New feature / 新功能
9+
- [ ] 💥 Breaking change / 破坏性变更
10+
- [ ] 📝 Documentation / 文档更新
11+
- [ ] 🔧 Configuration / 配置变更
12+
- [ ] ♻️ Refactor / 代码重构
13+
- [ ] 🎨 Style / 代码风格
14+
- [ ] ⚡ Performance / 性能优化
15+
- [ ] ✅ Test / 测试相关
16+
17+
## Related Issues / 关联 Issue
18+
19+
<!-- Link related issues: Fixes #123, Closes #456 -->
20+
<!-- 关联相关 Issue:Fixes #123, Closes #456 -->
21+
22+
## Pre-submission Checklist / 提交前检查清单
23+
24+
### Critical Issues / 关键问题 🔴
25+
- [ ] No requirements mismatch `[REQ]` / 无需求不匹配
26+
- [ ] No logic bugs `[LOGI]` / 无逻辑缺陷
27+
- [ ] No security vulnerabilities `[SEC]` / 无安全漏洞
28+
- [ ] No auth/permission issues `[AUTH]` / 无认证授权问题
29+
30+
### High Priority / 高优先级 🟠
31+
- [ ] Design is appropriate `[DSN]` / 设计合理
32+
- [ ] Error handling is robust `[RBST]` / 错误处理健壮
33+
- [ ] Transactions handled correctly `[TRANS]` / 事务处理正确
34+
- [ ] No concurrency issues `[CONC]` / 无并发问题
35+
- [ ] Performance is acceptable `[PERF]` / 性能可接受
36+
37+
### Code Quality / 代码质量 🟡🟢
38+
- [ ] Code is maintainable `[MAIN]` / 代码可维护
39+
- [ ] No unnecessary coupling `[CPL]` / 无不必要耦合
40+
- [ ] Code is readable `[READ]` / 代码可读
41+
- [ ] No code duplication `[DUP]` / 无代码重复
42+
- [ ] Naming is clear `[NAM]` / 命名清晰
43+
44+
### Testing / 测试
45+
- [ ] Unit tests added/updated / 已添加/更新单元测试
46+
- [ ] Integration tests passed / 集成测试通过
47+
- [ ] Manual testing completed / 已完成手动测试
48+
49+
### Documentation / 文档
50+
- [ ] Code comments added where needed / 已添加必要的代码注释
51+
- [ ] README updated if needed / 如需要已更新 README
52+
- [ ] API docs updated if needed / 如需要已更新 API 文档
53+
54+
## Screenshots / 截图
55+
56+
<!-- If applicable, add screenshots / 如适用,添加截图 -->
57+
58+
## Additional Notes / 补充说明
59+
60+
<!-- Any additional information for reviewers / 给审查者的其他信息 -->
61+
62+
---
63+
64+
> 💡 **Review Guidelines**: This PR will be reviewed following our [Code Review Guide / 代码审查指南](docs/codereview/CODE_REVIEW_GUIDE_CN.md)

.github/copilot-code-review.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# GitHub Copilot Code Review Configuration
2+
# Documentation: https://docs.github.com/en/copilot/using-github-copilot/code-review
3+
4+
reviews:
5+
# Enable automatic code review on pull requests
6+
auto_review: true
7+
8+
# High-level focus areas for reviews
9+
high_level_summary: true
10+
11+
# Review scope configuration
12+
review_scope:
13+
# Focus on these aspects during review
14+
focus_areas:
15+
- correctness
16+
- security
17+
- performance
18+
- maintainability
19+
- best_practices
20+
21+
# Path filters - which files to review
22+
path_filters:
23+
include:
24+
- "**/*.go"
25+
- "**/*.java"
26+
- "**/*.py"
27+
- "**/*.js"
28+
- "**/*.ts"
29+
- "**/*.jsx"
30+
- "**/*.tsx"
31+
- "**/*.rs"
32+
- "**/*.c"
33+
- "**/*.cpp"
34+
- "**/*.cs"
35+
- "**/*.rb"
36+
- "**/*.php"
37+
- "**/*.swift"
38+
- "**/*.kt"
39+
- "**/*.scala"
40+
exclude:
41+
- "**/*.test.*"
42+
- "**/*.spec.*"
43+
- "**/test/**"
44+
- "**/tests/**"
45+
- "**/__tests__/**"
46+
- "**/node_modules/**"
47+
- "**/vendor/**"
48+
- "**/dist/**"
49+
- "**/build/**"
50+
- "**/*.min.js"
51+
- "**/*.generated.*"
52+
53+
# Custom instructions file (automatically read by Copilot)
54+
# instructions_file: .github/copilot-instructions.md

.github/copilot-instructions.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# GitHub Copilot 代码审查指令
2+
3+
本文档为 GitHub Copilot 提供代码审查的指导规范。
4+
5+
## 核心审查原则
6+
7+
审查代码时,需要从多个角度评估:
8+
9+
1. **正确性**:代码是否按预期工作?
10+
2. **安全性**:是否存在安全漏洞?
11+
3. **性能**:代码是否高效?
12+
4. **可维护性**:代码是否易于理解和修改?
13+
5. **最佳实践**:代码是否遵循既定规范?
14+
15+
## 黄金法则
16+
17+
1. **简单、高效、安全的设计** - 避免过度设计;优先考虑清晰性和安全性
18+
2. **严格的完整性和性能** - 确保数据完整性,按需优化
19+
3. **合理的模块化** - 模块内高内聚,模块间低耦合
20+
4. **减少重复** - DRY原则
21+
5. **良好的命名和注释** - 清晰、描述性的名称;有意义的注释
22+
23+
## 审查分类参考
24+
25+
完整的审查分类检查清单请参见:docs/codereview/CODE_REVIEW_GUIDE_CN.md
26+
27+
### 问题分类速查表
28+
29+
| 分类 | 代码 | 优先级 |
30+
|------|------|--------|
31+
| 需求不匹配 | `REQ` | 🔴 关键 |
32+
| 逻辑问题 | `LOGI` | 🔴 关键 |
33+
| 安全问题 | `SEC` | 🔴 关键 |
34+
| 认证/授权 | `AUTH` | 🔴 关键 |
35+
| 设计问题 | `DSN` | 🟠 高 |
36+
| 健壮性 | `RBST` | 🟠 高 |
37+
| 事务问题 | `TRANS` | 🟠 高 |
38+
| 并发问题 | `CONC` | 🟠 高 |
39+
| 性能问题 | `PERF` | 🟠 高 |
40+
| 兼容性 | `CPT` | 🟡 中 |
41+
| 幂等性 | `IDE` | 🟡 中 |
42+
| 可维护性 | `MAIN` | 🟡 中 |
43+
| 耦合问题 | `CPL` | 🟡 中 |
44+
| 可读性 | `READ` | 🟢 普通 |
45+
| 简洁性 | `SIMPL` | 🟢 普通 |
46+
| 一致性 | `CONS` | 🟢 普通 |
47+
| 重复代码 | `DUP` | 🟢 普通 |
48+
| 命名问题 | `NAM` | 🟢 普通 |
49+
| 文档字符串 | `DOCS` | 🟢 普通 |
50+
| 注释问题 | `COMM` | 🔵 低 |
51+
| 日志问题 | `LOGG` | 🔵 低 |
52+
| 错误消息 | `ERR` | 🔵 低 |
53+
| 格式问题 | `FOR` | 🔵 低 |
54+
| 语法问题 | `GRAM` | 🔵 低 |
55+
| 最佳实践 | `PRAC` | 🔵 低 |
56+
| PR描述 | `PR` | 🔵 低 |
57+
58+
## 响应格式
59+
60+
提供审查反馈时:
61+
- 具体且可操作
62+
- 引用问题分类(如 `[LOGI]``[SEC]``[PERF]`
63+
- 建议具体的改进方案
64+
- 解释建议背后的原因
65+
- 优先处理关键和高优先级问题

.github/gemini-instructions.md

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
# Gemini Code Review 使用指南
2+
3+
本文档为 Gemini 提供代码审查的指导规范。
4+
5+
## 角色定义
6+
7+
你是一位专业的代码审查专家。在审查代码时,需要从多个角度评估代码,识别问题并提出改进建议。
8+
9+
## 核心审查原则
10+
11+
1. **正确性**:代码是否按预期工作?
12+
2. **安全性**:是否存在安全漏洞?
13+
3. **性能**:代码是否高效?
14+
4. **可维护性**:代码是否易于理解和修改?
15+
5. **最佳实践**:代码是否遵循既定规范?
16+
17+
## 黄金法则
18+
19+
1. **简单、高效、安全的设计** - 避免过度设计;优先考虑清晰性和安全性
20+
2. **严格的完整性和性能** - 确保数据完整性,按需优化
21+
3. **合理的模块化** - 模块内高内聚,模块间低耦合
22+
4. **减少重复** - DRY原则
23+
5. **良好的命名和注释** - 清晰、描述性的名称;有意义的注释
24+
25+
## 问题分类
26+
27+
审查代码时,使用以下分类代码识别和标注问题:
28+
29+
### 🔴 关键问题(必须修复)
30+
31+
| 代码 | 分类 | 检查要点 |
32+
|------|------|----------|
33+
| `REQ` | 需求不匹配 | 实现与需求不符;遗漏边界情况 |
34+
| `LOGI` | 逻辑问题 | 空指针、除零错误、无限循环、分支不完整 |
35+
| `SEC` | 安全问题 | SQL注入、XSS、硬编码凭证、未验证输入 |
36+
| `AUTH` | 认证/授权 | 缺少认证检查、访问控制不当 |
37+
38+
### 🟠 高优先级(强烈建议修复)
39+
40+
| 代码 | 分类 | 检查要点 |
41+
|------|------|----------|
42+
| `DSN` | 设计问题 | 过于复杂的设计、架构决策不当 |
43+
| `RBST` | 健壮性 | 缺少错误处理、无优雅降级 |
44+
| `TRANS` | 事务问题 | 缺少事务边界、错误时未回滚 |
45+
| `CONC` | 并发问题 | 竞态条件、死锁、非线程安全代码 |
46+
| `PERF` | 性能问题 | O(n²)算法、N+1查询、缺少索引 |
47+
48+
### 🟡 中优先级(建议修复)
49+
50+
| 代码 | 分类 | 检查要点 |
51+
|------|------|----------|
52+
| `CPT` | 兼容性 | 破坏性变更、版本不兼容 |
53+
| `IDE` | 幂等性 | 应该幂等但非幂等的操作 |
54+
| `MAIN` | 可维护性 | 难以理解、紧密耦合的代码 |
55+
| `CPL` | 耦合问题 | 硬编码依赖、隐藏依赖 |
56+
57+
### 🟢 普通优先级(可以改进)
58+
59+
| 代码 | 分类 | 检查要点 |
60+
|------|------|----------|
61+
| `READ` | 可读性 | 变量名不清晰、深层嵌套代码 |
62+
| `SIMPL` | 简洁性 | 过度设计、未使用的代码 |
63+
| `CONS` | 一致性 | 命名不一致、风格不匹配 |
64+
| `DUP` | 重复代码 | 复制粘贴代码、重复逻辑 |
65+
| `NAM` | 命名问题 | 模糊的名称、误导性名称 |
66+
| `DOCS` | 文档字符串 | 缺失或过时的文档 |
67+
68+
### 🔵 低优先级(锦上添花)
69+
70+
| 代码 | 分类 | 检查要点 |
71+
|------|------|----------|
72+
| `COMM` | 注释问题 | 复杂逻辑缺少注释 |
73+
| `LOGG` | 日志问题 | 缺少错误日志、过度日志 |
74+
| `ERR` | 错误消息 | 模糊的错误消息 |
75+
| `FOR` | 格式问题 | 格式问题、拼写错误 |
76+
| `GRAM` | 语法问题 | 注释/文档中的语法错误 |
77+
| `PRAC` | 最佳实践 | 违反规范 |
78+
| `PR` | PR描述 | PR描述不完整 |
79+
80+
## 响应格式
81+
82+
提供审查反馈时:
83+
84+
1. **以摘要开始** - 简要概述代码质量
85+
2. **按优先级列出问题** - 关键问题优先
86+
3. **使用分类代码** - 如 `[LOGI]``[SEC]``[PERF]`
87+
4. **具体明确** - 指出确切的行/函数
88+
5. **建议修复方案** - 提供具体的改进建议
89+
6. **解释原因** - 为什么这是一个问题?
90+
91+
### 输出格式示例
92+
93+
```markdown
94+
## 代码审查总结
95+
96+
整体评价:代码正确实现了功能,但存在一些安全和性能问题。
97+
98+
### 🔴 关键问题
99+
100+
**[SEC] SQL注入漏洞**(第42行)
101+
- 问题:用户输入直接拼接到SQL查询中
102+
- 修复:使用参数化查询
103+
```python
104+
# 修改前
105+
query = f"SELECT * FROM users WHERE id = {user_id}"
106+
107+
# 修改后
108+
query = "SELECT * FROM users WHERE id = %s"
109+
cursor.execute(query, (user_id,))
110+
```
111+
112+
### 🟠 高优先级问题
113+
114+
**[PERF] N+1查询问题**(第55-60行)
115+
- 问题:循环内执行数据库查询
116+
- 修复:使用批量查询或JOIN
117+
...
118+
119+
### 🟢 改进建议
120+
121+
**[NAM] 变量名不清晰**(第23行)
122+
- `d` 应改名为 `user_data` 以提高可读性
123+
```
124+
125+
## 审查检查清单
126+
127+
每次代码审查时检查:
128+
129+
- [ ] 无空指针风险
130+
- [ ] 无SQL注入或XSS漏洞
131+
- [ ] 无硬编码密钥
132+
- [ ] 正确的错误处理
133+
- [ ] 无N+1查询或低效循环
134+
- [ ] 事务边界正确
135+
- [ ] 并发场景线程安全
136+
- [ ] 代码可读且可维护
137+
- [ ] 包含测试
138+
139+
## 其他指南
140+
141+
1. **建设性** - 提出改进建议,而不仅仅是批评
142+
2. **优先级排序** - 首先关注关键问题
143+
3. **考虑上下文** - 理解项目的约定
144+
4. **简洁明了** - 清晰扼要
145+
5. **肯定优点** - 也指出写得好的部分

0 commit comments

Comments
 (0)