感谢你对 CodeMockLab 的关注!我们欢迎所有形式的贡献。
- 修复bug
- 添加新功能
- 改进文档
- 优化性能
- 提交bug报告
- 建议新功能
- 改进文档
- 分享使用经验
# Fork 到你的账户,然后克隆
git clone https://github.com/your-username/CodeMockLab.git
cd CodeMockLab# 创建功能分支
git checkout -b feature/your-feature-name
# 或者修复分支
git checkout -b fix/your-fix-name# 安装依赖
npm install
# 配置环境
cp .env.example .env.local
# 启动开发服务器
npm run dev# 运行测试
npm run test
# 运行安全检查
./scripts/pre-commit-security-check.sh
# 提交代码
git add .
git commit -m "feat: 添加新功能描述"
git push origin feature/your-feature-name- 详细描述你的更改
- 包含相关的issue链接
- 添加测试用例
- 确保CI通过
type(scope): subject
body
footer
类型说明:
feat: 新功能fix: bug修复docs: 文档更新style: 代码格式调整refactor: 重构test: 测试相关chore: 构建过程或辅助工具的变动
示例:
feat(ai): 添加GPT-4支持
- 集成OpenAI GPT-4 API
- 添加模型选择配置
- 更新AI提示词优化
Closes #123
- 使用TypeScript
- 遵循ESLint规则
- 使用Prettier格式化
- 添加必要的类型注解
使用 Bug报告模板
包含信息:
- 详细的问题描述
- 复现步骤
- 期望行为
- 实际行为
- 环境信息
- 截图或视频
使用 功能请求模板
包含信息:
- 功能描述
- 使用场景
- 解决的问题
- 可能的实现方案
- 参考资料
src/
├── app/ # Next.js App Router
├── components/ # React组件
├── lib/ # 工具函数
├── types/ # TypeScript类型
└── styles/ # 样式文件
# 必需配置
NEXTAUTH_SECRET=your-secret
DATABASE_URL=postgresql://...
DEEPSEEK_API_KEY=sk-...
# 可选配置
OPENAI_API_KEY=sk-...
REDIS_URL=redis://...# 同步schema
npx prisma db push
# 生成客户端
npx prisma generate
# 查看数据
npx prisma studio# 开发
npm run dev
# 构建
npm run build
# 测试
npm run test
# 类型检查
npm run type-check
# 代码检查
npm run lint# 单元测试
npm run test
# E2E测试
npm run test:e2e
# 覆盖率报告
npm run test:coverage- 为新功能编写测试
- 为bug修复编写回归测试
- 保持测试覆盖率 > 80%
- API变更需更新文档
- 新功能需添加使用说明
- 重要配置需添加示例
README.md- 项目介绍docs/- 详细文档- 代码注释 - 函数和类说明
- 贡献者列表展示
- Release Notes致谢
- 社区特别感谢
- 新手贡献者 - 修复简单问题
- 活跃贡献者 - 添加功能,参与讨论
- 核心贡献者 - Code Review,架构讨论
- 维护者 - 项目管理,发布管理
- GitHub Discussions - 一般讨论
- Issues - Bug和功能请求
- Discord - 实时讨论
- Email: contribute@codemocklab.com
贡献代码即表示同意将代码以 MIT License 开源。
感谢你的贡献让 CodeMockLab 变得更好! 🚀