Thank you for your interest in contributing to 01CLOUD-SUPPORT! We welcome contributions from the community. This document provides guidelines and instructions for contributing.
By participating in this project, you agree to abide by our Code of Conduct. Please be respectful and inclusive in all interactions.
- Check if the bug has already been reported in Issues
- If not found, create a new issue with:
- Clear, descriptive title
- Detailed description of the problem
- Steps to reproduce
- Expected behavior vs. actual behavior
- Your environment (Go version, OS, database, etc.)
- Relevant logs or screenshots
- Check if the feature/enhancement has been suggested in Issues
- Create a new issue/discussion with:
- Clear title describing the enhancement
- Detailed description of the proposed feature
- Possible implementation approach (optional)
- Use cases and benefits
-
Fork the repository and create your branch from
maingit checkout -b feature/your-feature-name
-
Set up development environment
cp .env.sample .env # Configure .env with your local settings -
Make your changes
- Write clean, readable code
- Add comments for complex logic
- Follow the project's code style
- Keep commits atomic and logical
-
Test your changes
make test-dev make lint
-
Commit your changes (follow Conventional Commits)
git commit -m "type(scope): description"Types:
feat,fix,docs,style,refactor,test,choreExample:
feat(ticket): add ticket filtering by status -
Push to your fork
git push origin feature/your-feature-name
-
Open a Pull Request against the
mainbranch- Use the PR template
- Provide clear description of changes
- Reference related issues
- Ensure all CI checks pass
- One feature/fix per PR when possible
- Keep PRs focused and manageable
- Update tests for new functionality
- Update documentation if needed
- Be responsive to feedback and reviews
# Clone the repository
git clone https://github.com/berrybytes/01cloud-support.git
cd 01cloud-support
# Install dependencies
go mod download
# Copy environment file
cp .env.sample .env# Run gRPC server
make run
# Run HTTP API server
make run-api
# Run tests
make test-dev
# Run linter
make lint
# Generate protobuf code
make gen-proto
# Build the project image
make build- Write tests for new features
- Ensure existing tests pass
- Aim for good test coverage
- Run tests locally before pushing:
make test-dev
- Follow Go conventions: Effective Go
- Use
gofmtfor formatting - Run
golangci-lintbefore committing:make lint
Follow Conventional Commits format:
<type>(<scope>): <subject>
<body>
<footer>
type: feat, fix, docs, style, refactor, test, chorescope: Component affected (optional)subject: Clear, concise description (imperative mood)body: Detailed explanation (optional)footer: Issue references likeFixes #123
- Update README.md for user-facing changes
- Add/update API documentation
- Include code comments for complex logic
- Update CHANGELOG.md with notable changes
- Maintainers review your PR
- Address review feedback
- Re-request review after changes
- Once approved, maintainers merge the PR
Feel free to:
- Open an issue for discussion
- Start a GitHub Discussion
- Reach out to the maintainers
Contributors are recognized in the project. Your efforts matter to us!
Thank you for contributing!