跳到主要内容

贡献指南

欢迎为 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

完整配置说明见 配置说明

贡献流程

  1. Fork 仓库到自己的空间
  2. 创建分支git checkout -b feature/amazing-feature
  3. 提交更改git commit -m 'Add amazing feature'
  4. 推送git push origin feature/amazing-feature
  5. 创建 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新功能
fixBug 修复
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 + 附加条件 许可证。贡献者代码可用于商业用途。