Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
## Description / 描述

<!-- Briefly describe what this PR does / 简要描述此 PR 的内容 -->

## Type of Change / 变更类型

- [ ] 🐛 Bug fix / 缺陷修复
- [ ] ✨ New feature / 新功能
- [ ] 💥 Breaking change / 破坏性变更
- [ ] 📝 Documentation / 文档更新
- [ ] 🔧 Configuration / 配置变更
- [ ] ♻️ Refactor / 代码重构
- [ ] 🎨 Style / 代码风格
- [ ] ⚡ Performance / 性能优化
- [ ] ✅ Test / 测试相关

## Related Issues / 关联 Issue

<!-- Link related issues: Fixes #123, Closes #456 -->
<!-- 关联相关 Issue:Fixes #123, Closes #456 -->

## Pre-submission Checklist / 提交前检查清单

### Critical Issues / 关键问题 🔴
- [ ] No requirements mismatch `[REQ]` / 无需求不匹配
- [ ] No logic bugs `[LOGI]` / 无逻辑缺陷
- [ ] No security vulnerabilities `[SEC]` / 无安全漏洞
- [ ] No auth/permission issues `[AUTH]` / 无认证授权问题

### High Priority / 高优先级 🟠
- [ ] Design is appropriate `[DSN]` / 设计合理
- [ ] Error handling is robust `[RBST]` / 错误处理健壮
- [ ] Transactions handled correctly `[TRANS]` / 事务处理正确
- [ ] No concurrency issues `[CONC]` / 无并发问题
- [ ] Performance is acceptable `[PERF]` / 性能可接受

### Code Quality / 代码质量 🟡🟢
- [ ] Code is maintainable `[MAIN]` / 代码可维护
- [ ] No unnecessary coupling `[CPL]` / 无不必要耦合
- [ ] Code is readable `[READ]` / 代码可读
- [ ] No code duplication `[DUP]` / 无代码重复
- [ ] Naming is clear `[NAM]` / 命名清晰

### Testing / 测试
- [ ] Unit tests added/updated / 已添加/更新单元测试
- [ ] Integration tests passed / 集成测试通过
- [ ] Manual testing completed / 已完成手动测试

### Documentation / 文档
- [ ] Code comments added where needed / 已添加必要的代码注释
- [ ] README updated if needed / 如需要已更新 README
- [ ] API docs updated if needed / 如需要已更新 API 文档

## Screenshots / 截图

<!-- If applicable, add screenshots / 如适用,添加截图 -->

## Additional Notes / 补充说明

<!-- Any additional information for reviewers / 给审查者的其他信息 -->

---

> 💡 **Review Guidelines**: This PR will be reviewed following our [Code Review Guide / 代码审查指南](docs/codereview/CODE_REVIEW_GUIDE_CN.md)
54 changes: 54 additions & 0 deletions .github/copilot-code-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# GitHub Copilot Code Review Configuration
# Documentation: https://docs.github.com/en/copilot/using-github-copilot/code-review

reviews:
# Enable automatic code review on pull requests
auto_review: true

# High-level focus areas for reviews
high_level_summary: true

# Review scope configuration
review_scope:
# Focus on these aspects during review
focus_areas:
- correctness
- security
- performance
- maintainability
- best_practices

# Path filters - which files to review
path_filters:
include:
- "**/*.go"
- "**/*.java"
- "**/*.py"
- "**/*.js"
- "**/*.ts"
- "**/*.jsx"
- "**/*.tsx"
- "**/*.rs"
- "**/*.c"
- "**/*.cpp"
- "**/*.cs"
- "**/*.rb"
- "**/*.php"
- "**/*.swift"
- "**/*.kt"
- "**/*.scala"
exclude:
- "**/*.test.*"
- "**/*.spec.*"
- "**/test/**"
- "**/tests/**"
- "**/__tests__/**"
- "**/node_modules/**"
- "**/vendor/**"
- "**/dist/**"
- "**/build/**"
- "**/*.min.js"
- "**/*.generated.*"

# Custom instructions file (automatically read by Copilot)
# instructions_file: .github/copilot-instructions.md
65 changes: 65 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# GitHub Copilot 代码审查指令

本文档为 GitHub Copilot 提供代码审查的指导规范。

## 核心审查原则

审查代码时,需要从多个角度评估:

1. **正确性**:代码是否按预期工作?
2. **安全性**:是否存在安全漏洞?
3. **性能**:代码是否高效?
4. **可维护性**:代码是否易于理解和修改?
5. **最佳实践**:代码是否遵循既定规范?

## 黄金法则

1. **简单、高效、安全的设计** - 避免过度设计;优先考虑清晰性和安全性
2. **严格的完整性和性能** - 确保数据完整性,按需优化
3. **合理的模块化** - 模块内高内聚,模块间低耦合
4. **减少重复** - DRY原则
5. **良好的命名和注释** - 清晰、描述性的名称;有意义的注释

## 审查分类参考

完整的审查分类检查清单请参见:docs/codereview/CODE_REVIEW_GUIDE_CN.md

### 问题分类速查表

| 分类 | 代码 | 优先级 |
|------|------|--------|
| 需求不匹配 | `REQ` | 🔴 关键 |
| 逻辑问题 | `LOGI` | 🔴 关键 |
| 安全问题 | `SEC` | 🔴 关键 |
| 认证/授权 | `AUTH` | 🔴 关键 |
| 设计问题 | `DSN` | 🟠 高 |
| 健壮性 | `RBST` | 🟠 高 |
| 事务问题 | `TRANS` | 🟠 高 |
| 并发问题 | `CONC` | 🟠 高 |
| 性能问题 | `PERF` | 🟠 高 |
| 兼容性 | `CPT` | 🟡 中 |
| 幂等性 | `IDE` | 🟡 中 |
| 可维护性 | `MAIN` | 🟡 中 |
| 耦合问题 | `CPL` | 🟡 中 |
| 可读性 | `READ` | 🟢 普通 |
| 简洁性 | `SIMPL` | 🟢 普通 |
| 一致性 | `CONS` | 🟢 普通 |
| 重复代码 | `DUP` | 🟢 普通 |
| 命名问题 | `NAM` | 🟢 普通 |
| 文档字符串 | `DOCS` | 🟢 普通 |
| 注释问题 | `COMM` | 🔵 低 |
| 日志问题 | `LOGG` | 🔵 低 |
| 错误消息 | `ERR` | 🔵 低 |
| 格式问题 | `FOR` | 🔵 低 |
| 语法问题 | `GRAM` | 🔵 低 |
| 最佳实践 | `PRAC` | 🔵 低 |
| PR描述 | `PR` | 🔵 低 |

## 响应格式

提供审查反馈时:
- 具体且可操作
- 引用问题分类(如 `[LOGI]`、`[SEC]`、`[PERF]`)
- 建议具体的改进方案
- 解释建议背后的原因
- 优先处理关键和高优先级问题
145 changes: 145 additions & 0 deletions .github/gemini-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# Gemini Code Review 使用指南

本文档为 Gemini 提供代码审查的指导规范。

## 角色定义

你是一位专业的代码审查专家。在审查代码时,需要从多个角度评估代码,识别问题并提出改进建议。

## 核心审查原则

1. **正确性**:代码是否按预期工作?
2. **安全性**:是否存在安全漏洞?
3. **性能**:代码是否高效?
4. **可维护性**:代码是否易于理解和修改?
5. **最佳实践**:代码是否遵循既定规范?

## 黄金法则

1. **简单、高效、安全的设计** - 避免过度设计;优先考虑清晰性和安全性
2. **严格的完整性和性能** - 确保数据完整性,按需优化
3. **合理的模块化** - 模块内高内聚,模块间低耦合
4. **减少重复** - DRY原则
5. **良好的命名和注释** - 清晰、描述性的名称;有意义的注释

## 问题分类

审查代码时,使用以下分类代码识别和标注问题:

### 🔴 关键问题(必须修复)

| 代码 | 分类 | 检查要点 |
|------|------|----------|
| `REQ` | 需求不匹配 | 实现与需求不符;遗漏边界情况 |
| `LOGI` | 逻辑问题 | 空指针、除零错误、无限循环、分支不完整 |
| `SEC` | 安全问题 | SQL注入、XSS、硬编码凭证、未验证输入 |
| `AUTH` | 认证/授权 | 缺少认证检查、访问控制不当 |

### 🟠 高优先级(强烈建议修复)

| 代码 | 分类 | 检查要点 |
|------|------|----------|
| `DSN` | 设计问题 | 过于复杂的设计、架构决策不当 |
| `RBST` | 健壮性 | 缺少错误处理、无优雅降级 |
| `TRANS` | 事务问题 | 缺少事务边界、错误时未回滚 |
| `CONC` | 并发问题 | 竞态条件、死锁、非线程安全代码 |
| `PERF` | 性能问题 | O(n²)算法、N+1查询、缺少索引 |

### 🟡 中优先级(建议修复)

| 代码 | 分类 | 检查要点 |
|------|------|----------|
| `CPT` | 兼容性 | 破坏性变更、版本不兼容 |
| `IDE` | 幂等性 | 应该幂等但非幂等的操作 |
| `MAIN` | 可维护性 | 难以理解、紧密耦合的代码 |
| `CPL` | 耦合问题 | 硬编码依赖、隐藏依赖 |

### 🟢 普通优先级(可以改进)

| 代码 | 分类 | 检查要点 |
|------|------|----------|
| `READ` | 可读性 | 变量名不清晰、深层嵌套代码 |
| `SIMPL` | 简洁性 | 过度设计、未使用的代码 |
| `CONS` | 一致性 | 命名不一致、风格不匹配 |
| `DUP` | 重复代码 | 复制粘贴代码、重复逻辑 |
| `NAM` | 命名问题 | 模糊的名称、误导性名称 |
| `DOCS` | 文档字符串 | 缺失或过时的文档 |

### 🔵 低优先级(锦上添花)

| 代码 | 分类 | 检查要点 |
|------|------|----------|
| `COMM` | 注释问题 | 复杂逻辑缺少注释 |
| `LOGG` | 日志问题 | 缺少错误日志、过度日志 |
| `ERR` | 错误消息 | 模糊的错误消息 |
| `FOR` | 格式问题 | 格式问题、拼写错误 |
| `GRAM` | 语法问题 | 注释/文档中的语法错误 |
| `PRAC` | 最佳实践 | 违反规范 |
| `PR` | PR描述 | PR描述不完整 |

## 响应格式

提供审查反馈时:

1. **以摘要开始** - 简要概述代码质量
2. **按优先级列出问题** - 关键问题优先
3. **使用分类代码** - 如 `[LOGI]`、`[SEC]`、`[PERF]`
4. **具体明确** - 指出确切的行/函数
5. **建议修复方案** - 提供具体的改进建议
6. **解释原因** - 为什么这是一个问题?

### 输出格式示例

```markdown
## 代码审查总结

整体评价:代码正确实现了功能,但存在一些安全和性能问题。

### 🔴 关键问题

**[SEC] SQL注入漏洞**(第42行)
- 问题:用户输入直接拼接到SQL查询中
- 修复:使用参数化查询
```python
# 修改前
query = f"SELECT * FROM users WHERE id = {user_id}"

# 修改后
query = "SELECT * FROM users WHERE id = %s"
cursor.execute(query, (user_id,))
```

### 🟠 高优先级问题

**[PERF] N+1查询问题**(第55-60行)
- 问题:循环内执行数据库查询
- 修复:使用批量查询或JOIN
...

### 🟢 改进建议

**[NAM] 变量名不清晰**(第23行)
- `d` 应改名为 `user_data` 以提高可读性
```

## 审查检查清单

每次代码审查时检查:

- [ ] 无空指针风险
- [ ] 无SQL注入或XSS漏洞
- [ ] 无硬编码密钥
- [ ] 正确的错误处理
- [ ] 无N+1查询或低效循环
- [ ] 事务边界正确
- [ ] 并发场景线程安全
- [ ] 代码可读且可维护
- [ ] 包含测试

## 其他指南

1. **建设性** - 提出改进建议,而不仅仅是批评
2. **优先级排序** - 首先关注关键问题
3. **考虑上下文** - 理解项目的约定
4. **简洁明了** - 清晰扼要
5. **肯定优点** - 也指出写得好的部分
Loading