贡献指南
感谢您对 OpsHub 项目的关注!我们欢迎各种形式的贡献。
贡献方式
报告 Bug
发现问题请提交 Issue,附上详细的复现步骤
功能建议
有好的想法欢迎提交 Feature Request
提交代码
修复 Bug 或实现新功能,提交 Pull Request
完善文档
帮助改进文档,修正错误或补充内容
开发环境
环境要求
| 工具 | 版本 |
|---|---|
| Go | 1.21+ |
| Node.js | 18+ |
| MySQL | 8.0+ |
| Redis | 6.0+ |
本地开发
Fork 项目
在 GitHub 上 Fork OpsHub 仓库到自己的账号
克隆代码
git clone https://github.com/YOUR_USERNAME/opshub.git
cd opshub
安装依赖
# 后端依赖
go mod download
# 前端依赖
cd web && npm install
配置环境
cp config/config.example.yaml config/config.yaml
# 修改数据库等配置
启动开发服务
# 终端 1:启动后端
go run main.go server
# 终端 2:启动前端
cd web && npm run dev
代码规范
Go 代码规范
- 遵循 Go 官方代码风格
- 使用
gofmt格式化代码 - 使用
golint检查代码 - 导出的函数和类型必须添加注释
- 错误处理不能忽略
Vue/TypeScript 规范
- 使用 Vue 3 Composition API
- 组件使用
<script setup>语法 - 使用 TypeScript 类型声明
- 遵循 ESLint 规则
- CSS 使用 scoped 作用域
提交规范
Commit Message 格式:
<type>(<scope>): <subject>
<body>
<footer>
Type 类型:
| 类型 | 说明 |
|---|---|
| feat | 新功能 |
| fix | Bug 修复 |
| docs | 文档更新 |
| style | 代码格式 |
| refactor | 重构 |
| test | 测试 |
| chore | 构建/工具 |
示例:
feat(kubernetes): add cluster inspection feature
- Add health check for nodes
- Add workload status check
- Generate inspection report
Closes #123
Pull Request
提交流程
创建分支
git checkout -b feature/your-feature
开发和测试
完成开发后,确保代码通过测试
提交代码
git add .
git commit -m "feat: your feature description"
git push origin feature/your-feature
创建 PR
在 GitHub 上创建 Pull Request,填写详细描述
PR 模板
## 变更类型
- [ ] 新功能
- [ ] Bug 修复
- [ ] 文档更新
- [ ] 代码重构
- [ ] 其他
## 变更描述
简要描述这个 PR 做了什么...
## 相关 Issue
Closes #123
## 测试
- [ ] 已在本地测试
- [ ] 已添加单元测试
- [ ] 已更新文档
## 截图(如有)
如果是 UI 变更,请附上截图
Issue 指南
Bug 报告
报告 Bug 时请提供:
- OpsHub 版本
- 操作系统和浏览器版本
- 详细的复现步骤
- 期望的行为
- 实际的行为
- 相关的错误日志或截图
功能请求
提交功能请求时请说明:
- 功能的使用场景
- 期望的实现方式
- 是否愿意参与实现