2025-07-17 14:08:52 +08:00
|
|
|
|
# 🤝 贡献指南
|
|
|
|
|
|
|
|
|
|
|
|
感谢您对 L9Pan 项目的关注!我们欢迎所有形式的贡献。
|
|
|
|
|
|
|
|
|
|
|
|
## 📋 贡献类型
|
|
|
|
|
|
|
|
|
|
|
|
- 🐛 Bug 修复
|
|
|
|
|
|
- ✨ 新功能开发
|
|
|
|
|
|
- 📚 文档改进
|
|
|
|
|
|
- 🎨 UI/UX 优化
|
|
|
|
|
|
- ⚡ 性能优化
|
|
|
|
|
|
- 🧪 测试用例
|
|
|
|
|
|
- 🔧 工具改进
|
|
|
|
|
|
|
|
|
|
|
|
## 🚀 开始贡献
|
|
|
|
|
|
|
|
|
|
|
|
### 1. Fork 项目
|
|
|
|
|
|
|
2025-07-18 09:42:07 +08:00
|
|
|
|
1. 访问 [GitHub 仓库](https://github.com/ctwj/urldb)
|
2025-07-17 14:08:52 +08:00
|
|
|
|
2. 点击右上角的 Fork 按钮
|
|
|
|
|
|
3. 选择您的 GitHub 账户
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 克隆您的 Fork
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
git clone https://github.com/YOUR_USERNAME/resManage.git
|
|
|
|
|
|
cd resManage
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 添加上游仓库
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-07-18 09:42:07 +08:00
|
|
|
|
git remote add upstream https://github.com/ctwj/urldb.git
|
2025-07-17 14:08:52 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4. 创建功能分支
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
git checkout -b feature/your-feature-name
|
|
|
|
|
|
# 或者
|
|
|
|
|
|
git checkout -b fix/your-bug-fix
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 💻 开发环境设置
|
|
|
|
|
|
|
|
|
|
|
|
### 后端开发
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 安装 Go 依赖
|
|
|
|
|
|
go mod tidy
|
|
|
|
|
|
|
|
|
|
|
|
# 复制环境变量文件
|
|
|
|
|
|
cp env.example .env
|
|
|
|
|
|
|
|
|
|
|
|
# 编辑环境变量
|
|
|
|
|
|
vim .env
|
|
|
|
|
|
|
|
|
|
|
|
# 启动开发服务器
|
|
|
|
|
|
go run main.go
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 前端开发
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 进入前端目录
|
|
|
|
|
|
cd web
|
|
|
|
|
|
|
|
|
|
|
|
# 安装依赖
|
|
|
|
|
|
pnpm install
|
|
|
|
|
|
|
|
|
|
|
|
# 启动开发服务器
|
|
|
|
|
|
pnpm dev
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 数据库设置
|
|
|
|
|
|
|
|
|
|
|
|
```sql
|
2025-07-19 00:44:00 +08:00
|
|
|
|
CREATE DATABASE url_db;
|
2025-07-17 14:08:52 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 📝 开发规范
|
|
|
|
|
|
|
|
|
|
|
|
### 代码风格
|
|
|
|
|
|
|
|
|
|
|
|
#### Go 代码规范
|
|
|
|
|
|
- 遵循 [Go 官方代码规范](https://golang.org/doc/effective_go.html)
|
|
|
|
|
|
- 使用 `gofmt` 格式化代码
|
|
|
|
|
|
- 函数名使用驼峰命名法
|
|
|
|
|
|
- 包名使用小写字母
|
|
|
|
|
|
- 错误处理要明确
|
|
|
|
|
|
|
|
|
|
|
|
#### TypeScript/JavaScript 规范
|
|
|
|
|
|
- 使用 TypeScript 编写代码
|
|
|
|
|
|
- 遵循 ESLint 规则
|
|
|
|
|
|
- 使用 Prettier 格式化代码
|
|
|
|
|
|
- 组件名使用 PascalCase
|
|
|
|
|
|
- 变量名使用 camelCase
|
|
|
|
|
|
|
|
|
|
|
|
### 提交信息规范
|
|
|
|
|
|
|
|
|
|
|
|
使用中文描述提交信息,格式如下:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
类型(范围): 简短描述
|
|
|
|
|
|
|
|
|
|
|
|
详细描述(可选)
|
|
|
|
|
|
|
|
|
|
|
|
相关Issue: #123```
|
|
|
|
|
|
|
|
|
|
|
|
类型包括:
|
|
|
|
|
|
- `feat`: 新功能
|
|
|
|
|
|
- `fix`: 修复bug
|
|
|
|
|
|
- `docs`: 文档更新
|
|
|
|
|
|
- `style`: 代码格式调整
|
|
|
|
|
|
- `refactor`: 代码重构
|
|
|
|
|
|
- `test`: 测试相关
|
|
|
|
|
|
- `chore`: 构建过程或辅助工具的变动
|
|
|
|
|
|
|
|
|
|
|
|
示例:
|
|
|
|
|
|
```
|
|
|
|
|
|
feat(资源管理): 添加批量导入功能
|
|
|
|
|
|
|
|
|
|
|
|
- 支持Excel文件导入
|
|
|
|
|
|
- 添加导入进度显示
|
|
|
|
|
|
- 优化错误处理
|
|
|
|
|
|
|
|
|
|
|
|
相关Issue: #45
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 分支命名规范
|
|
|
|
|
|
|
|
|
|
|
|
- `feature/功能名称` - 新功能开发
|
|
|
|
|
|
- `fix/问题描述` - Bug修复
|
|
|
|
|
|
- `docs/文档类型` - 文档更新
|
|
|
|
|
|
- `refactor/重构内容` - 代码重构
|
|
|
|
|
|
- `test/测试内容` - 测试相关
|
|
|
|
|
|
|
|
|
|
|
|
## 🧪 测试
|
|
|
|
|
|
|
|
|
|
|
|
### 后端测试
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 运行所有测试
|
|
|
|
|
|
go test ./...
|
|
|
|
|
|
|
|
|
|
|
|
# 运行特定包的测试
|
|
|
|
|
|
go test ./handlers
|
|
|
|
|
|
|
|
|
|
|
|
# 运行测试并显示覆盖率
|
|
|
|
|
|
go test -cover ./...
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 前端测试
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd web
|
|
|
|
|
|
|
|
|
|
|
|
# 运行单元测试
|
|
|
|
|
|
pnpm test
|
|
|
|
|
|
|
|
|
|
|
|
# 运行E2E测试
|
|
|
|
|
|
pnpm test:e2## 📋 Pull Request 流程
|
|
|
|
|
|
|
|
|
|
|
|
###1. 确保代码质量
|
|
|
|
|
|
|
|
|
|
|
|
- ] 代码通过所有测试
|
|
|
|
|
|
- ] 代码符合项目规范
|
|
|
|
|
|
- ] 添加了必要的文档
|
|
|
|
|
|
- ] 更新了相关文档
|
|
|
|
|
|
|
|
|
|
|
|
### 2 提交 Pull Request
|
|
|
|
|
|
|
|
|
|
|
|
1推送您的分支到您的 Fork
|
|
|
|
|
|
```bash
|
|
|
|
|
|
git push origin feature/your-feature-name
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. 在 GitHub 上创建 Pull Request3. 填写 PR 模板4 等待代码审查
|
|
|
|
|
|
|
|
|
|
|
|
###3PR 模板
|
|
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
|
## 📝 描述
|
|
|
|
|
|
|
|
|
|
|
|
简要描述您的更改
|
|
|
|
|
|
|
|
|
|
|
|
## 🎯 类型
|
|
|
|
|
|
|
|
|
|
|
|
- ] Bug 修复
|
|
|
|
|
|
- ] 新功能
|
|
|
|
|
|
- ] 文档更新
|
|
|
|
|
|
- ] 代码重构
|
|
|
|
|
|
- ] 性能优化
|
|
|
|
|
|
- 相关
|
|
|
|
|
|
|
|
|
|
|
|
## 🔗 相关 Issue
|
|
|
|
|
|
|
|
|
|
|
|
关闭 #123
|
|
|
|
|
|
|
|
|
|
|
|
## ✅ 检查清单
|
|
|
|
|
|
|
|
|
|
|
|
- ] 我的代码遵循项目的代码规范
|
|
|
|
|
|
- ] 我已经自测了我的更改
|
|
|
|
|
|
- ] 我已经添加了必要的测试
|
|
|
|
|
|
- ] 我已经更新了相关文档
|
|
|
|
|
|
- ] 我的更改不会产生新的警告
|
|
|
|
|
|
- 我添加了示例来证明我的更改是有效的
|
|
|
|
|
|
|
|
|
|
|
|
## 📸 截图(如果适用)
|
|
|
|
|
|
|
|
|
|
|
|
## 🔧 测试
|
|
|
|
|
|
|
|
|
|
|
|
请描述您如何测试您的更改
|
|
|
|
|
|
|
|
|
|
|
|
## 📋 其他信息
|
|
|
|
|
|
|
|
|
|
|
|
任何其他信息或上下文
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 🐛 报告 Bug
|
|
|
|
|
|
|
|
|
|
|
|
### Bug 报告模板
|
|
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
|
## 🐛 Bug 描述
|
|
|
|
|
|
|
|
|
|
|
|
清晰简洁地描述 bug
|
|
|
|
|
|
|
|
|
|
|
|
## 🔄 重现步骤
|
|
|
|
|
|
1. 进入...2. 点击 '....3. 滚动到 ....4 看到错误
|
|
|
|
|
|
|
|
|
|
|
|
## ✅ 预期行为
|
|
|
|
|
|
|
|
|
|
|
|
清晰简洁地描述您期望发生的事情
|
|
|
|
|
|
|
|
|
|
|
|
## 📸 截图
|
|
|
|
|
|
|
|
|
|
|
|
如果适用,添加截图以帮助解释您的问题
|
|
|
|
|
|
|
|
|
|
|
|
## 💻 环境信息
|
|
|
|
|
|
|
|
|
|
|
|
- 操作系统: [例如 Windows 10]
|
|
|
|
|
|
- 浏览器: [例如 Chrome, Safari]
|
|
|
|
|
|
- 版本:例如 22]
|
|
|
|
|
|
|
|
|
|
|
|
## 📱 移动设备(如果适用)
|
|
|
|
|
|
|
|
|
|
|
|
- 设备: [例如 iPhone 6]
|
|
|
|
|
|
- 操作系统: 例如 iOS 8.1]
|
|
|
|
|
|
- 浏览器:例如 Safari]
|
|
|
|
|
|
- 版本: [例如 22]
|
|
|
|
|
|
|
|
|
|
|
|
## 🔧 其他上下文
|
|
|
|
|
|
|
|
|
|
|
|
在此处添加有关问题的任何其他上下文
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 💡 功能请求
|
|
|
|
|
|
|
|
|
|
|
|
### 功能请求模板
|
|
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
|
## 💡 功能描述
|
|
|
|
|
|
|
|
|
|
|
|
清晰简洁地描述您想要的功能
|
|
|
|
|
|
|
|
|
|
|
|
## 🎯 问题描述
|
|
|
|
|
|
|
|
|
|
|
|
清晰简洁地描述这个功能要解决的问题
|
|
|
|
|
|
|
|
|
|
|
|
## 💭 建议的解决方案
|
|
|
|
|
|
|
|
|
|
|
|
清晰简洁地描述您希望发生的事情
|
|
|
|
|
|
|
|
|
|
|
|
## 🔄 替代方案
|
|
|
|
|
|
|
|
|
|
|
|
清晰简洁地描述您考虑过的任何替代解决方案或功能
|
|
|
|
|
|
|
|
|
|
|
|
## 📋 其他上下文
|
|
|
|
|
|
|
|
|
|
|
|
在此处添加有关功能请求的任何其他上下文或截图
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 📞 联系我们
|
|
|
|
|
|
|
|
|
|
|
|
如果您有任何问题或需要帮助,请通过以下方式联系我们:
|
|
|
|
|
|
|
|
|
|
|
|
- 📧 邮箱: 510199617@qq.com
|
|
|
|
|
|
- 💬 讨论区: [GitHub Discussions](https://github.com/your-username/l9pan/discussions)
|
|
|
|
|
|
- 🐛 问题反馈: [GitHub Issues](https://github.com/your-username/l9pan/issues)
|
|
|
|
|
|
|
|
|
|
|
|
## 🙏 致谢
|
|
|
|
|
|
|
|
|
|
|
|
感谢所有为 L9项目做出贡献的开发者!
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
**记住:每一个贡献,无论大小,都是宝贵的!** 🎉
|