Thank you for your interest in the CodeAgent project! We welcome all forms of contributions.
If you find a bug, please:
- Search existing GitHub Issues to see if it has already been reported
- If not, create a new Issue with:
- Detailed bug description
- Steps to reproduce
- Expected vs actual behavior
- Environment information (OS, Go version, etc.)
- Relevant logs
If you have a feature suggestion:
- Search existing GitHub Issues to see if it has been discussed
- Create a new Issue with detailed description of:
- Feature requirements
- Use cases
- Expected outcomes
-
Fork the project to your GitHub account
-
Clone your fork:
git clone https://github.com/your-username/codeagent.git cd codeagent -
Add upstream repository:
git remote add upstream https://github.com/qiniu/codeagent.git
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Code Standards
- Follow Go official coding standards
- Use
gofmtto format code - Run
go vetto check for code issues
-
Testing
- Write tests for new features
- Ensure all tests pass:
make test
-
Commit Standards
- Use clear commit messages
- Format:
type(scope): description - Examples:
feat(webhook): add signature validationfix(agent): resolve race condition in workspace cleanupdocs(readme): update installation instructions
-
Pull Request
- Ensure code passes all checks
- Provide detailed PR description
- Include test cases and documentation updates
All code changes require code review:
- Ensure CI checks pass
- At least one maintainer approval required
- Address all review comments
codeagent/
├── cmd/ # Command line tools
├── internal/ # Internal packages
│ ├── agent/ # Core agent logic
│ ├── code/ # AI code generation
│ ├── config/ # Configuration management
│ ├── github/ # GitHub API client
│ ├── webhook/ # Webhook handling
│ └── workspace/ # Workspace management
├── pkg/ # Public packages
└── docs/ # Documentation
- Unit tests:
go test ./... - Integration tests: Use
test-local-mode.shscript - Coverage:
go test -coverprofile=coverage.out ./...
-
Set required environment variables:
export GITHUB_TOKEN="your-token" export CLAUDE_API_KEY="your-key" # or GEMINI_API_KEY export WEBHOOK_SECRET="your-secret"
-
Start in development mode:
./scripts/start.sh -p claude # Local CLI mode
- Respect all contributors
- Maintain professional and friendly communication
- Welcome new contributors
- Provide constructive feedback
For questions, please contact us through:
- GitHub Issues: Report bugs and feature requests
- GitHub Discussions: General discussions and questions
Thank you for your contributions!