贡献指南
欢迎为 iForge 贡献代码!
开发环境
# 克隆仓库
git clone https://gitee.com/iforge-go/iforge.git
cd iforge
# 启动后端
cd server
go run ./cmd/server
# 启动前端(新终端)
cd web
npm install
npm run dev
环境变量配置
开发环境通常需要以下环境变量:
# 后端(api/.env)
IFORGE_HOME=./data
IFORGE_HTTP_PORT=8081
IFORGE_SSH_PORT=2022
IFORGE_CORS_ORIGINS=*
# 前端(web/.env.local)
NEXT_PUBLIC_API_BASE=http://localhost:8081/api/v1
完整配置说明见 配置说明。
贡献流程
- Fork 仓库到自己的空间
- 创建分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add amazing feature' - 推送:
git push origin feature/amazing-feature - 创建 MR:在 Gitee/GitHub 上发起合并请求
代码规范
后端(Go)
- 遵循 Effective Go 风格
- 新增 API 端点需在 router 中注册
- 数据模型变更需通过 GORM AutoMigrate 或 SQL 迁移
- 错误处理使用
fmt.Errorf包装上下文
前端(TypeScript / React)
- 使用 TypeScript,避免
any - 组件使用函数式 + Hooks
- UI 使用 Chakra UI 组件库
- 国际化文本通过
t('key')调用,不硬编码中文 - 页面使用
useSearchParams时需包裹<Suspense>
提交信息
格式:type(scope): description
| type | 说明 |
|---|---|
feat | 新功能 |
fix | Bug 修复 |
docs | 文档变更 |
style | 代码格式(不影响功能) |
refactor | 重构 |
test | 测试相关 |
chore | 构建/工具/依赖 |
示例:
feat(repo): 支持仓库归档功能
fix(migration): AutoMigrate 先于 SQL 迁移执行
docs(api): 添加 SSH 克隆说明
测试
# 后端测试
cd server
go test ./...
# 前端类型检查
cd web
npx tsc --noEmit
许可证
贡献的代码将遵循项目的 Apache License 2.0 + 附加条件 许可证。贡献者代码可用于商业用途。