感谢您对 CodeRocket CLI 项目的关注!我们欢迎各种形式的贡献。
如果您发现了 bug 或有功能建议,请:
- 检查 Issues 确认问题未被报告
- 创建新的 Issue,包含:
- 详细的问题描述
- 复现步骤
- 期望的行为
- 实际的行为
- 环境信息(操作系统、Node.js版本等)
-
Fork 项目
git clone https://github.com/your-username/coderocket-cli.git cd coderocket-cli -
创建功能分支
git checkout -b feature/your-feature-name
-
进行开发
- 遵循现有的代码风格
- 添加必要的测试
- 更新相关文档
-
测试您的更改
# 运行测试套件 ./test-ai-services.sh # 测试安装流程 ./install.sh
-
提交更改
git add . git commit -m "feat: 添加新功能描述"
-
推送并创建 Pull Request
git push origin feature/your-feature-name
-
文件头部
#!/bin/bash # 脚本描述 # 作者信息和日期
-
变量命名
- 使用大写字母和下划线:
GITLAB_API_URL - 局部变量使用小写:
local api_key
- 使用大写字母和下划线:
-
函数规范
# 函数描述 function_name() { local param1=$1 local param2=$2 # 函数实现 }
-
错误处理
if ! command -v tool &> /dev/null; then echo -e "${RED}❌ 工具未安装${NC}" return 1 fi
使用 Conventional Commits 格式:
feat:新功能fix:修复bugdocs:文档更新style:代码格式调整refactor:代码重构test:测试相关chore:构建过程或辅助工具的变动
示例:
feat: 添加对ClaudeCode的支持
fix: 修复API密钥验证问题
docs: 更新安装指南
# 完整测试套件
./test-ai-services.sh
# 特定功能测试
./lib/ai-service-manager.sh test
./lib/ai-config.sh validate在 test-ai-services.sh 中添加测试用例:
run_test "测试描述" "测试命令" [期望退出码]确保新功能包含以下测试:
- 功能正常流程测试
- 错误处理测试
- 边界条件测试
- 集成测试
README.md- 主要文档docs/AI_SERVICES_GUIDE.md- AI服务使用指南CONTRIBUTING.md- 本贡献指南CHANGELOG.md- 变更日志
- 使用清晰的标题层级
- 提供代码示例
- 包含必要的截图或图表
- 保持中英文混排的一致性
- Bash 4.0+
- Git 2.0+
- Node.js 14+ (用于AI CLI工具)
- Python 3.6+ (用于JSON处理)
- ShellCheck - Shell脚本静态分析
- Prettier - 代码格式化
- VS Code - 推荐编辑器
- 设置开发环境
- 运行现有测试确保环境正常
- 开发新功能
- 添加测试
- 更新文档
- 提交代码
MAJOR.MINOR.PATCH- 主版本号:不兼容的API修改
- 次版本号:向下兼容的功能性新增
- 修订号:向下兼容的问题修正
- 所有测试通过
- 文档已更新
- CHANGELOG.md 已更新
- 版本号已更新
- 创建 Git 标签
- 小步提交:每个提交只包含一个逻辑变更
- 测试驱动:先写测试,再实现功能
- 文档同步:代码变更时同步更新文档
- 向后兼容:尽量保持向后兼容性
Q: 如何调试Shell脚本?
A: 使用 set -x 启用调试模式,或设置 DEBUG=true 环境变量。
Q: 如何测试不同的AI服务?
A: 使用 ./lib/ai-config.sh select 切换服务,然后运行相应测试。
Q: 如何处理跨平台兼容性? A: 使用POSIX兼容的命令,避免GNU特定的选项。
- GitHub Issues: 项目Issues页面
- 邮件: [项目维护者邮箱]
- 讨论: GitHub Discussions
通过贡献代码,您同意您的贡献将在与项目相同的许可证下发布。
再次感谢您的贡献!每一个贡献都让这个项目变得更好。