Thank you for your interest in contributing! We want to make it as easy as possible for you to get your code into the project. For more detailed documentation, please refer to our Official Guide.
# 1. Fork the repo on GitHub
# 2. Clone your fork
git clone git@github.com:<your-username>/optimum-gateway.git
cd optimum-gateway
# 3. Add the official repo as 'upstream'
git remote add upstream git@github.com:getoptimum/optimum-gateway.gitmake build # Verify it compiles
make test # Run unit tests
make run # Run the service locallyHere are some ways you can contribute:
- Open a new issue (please check the issue does not already exist).
- Work on an existing issue (check out the issue list).
- Synchronize your fork with the latest
upstream/main. - Create a branch for your work:
- Features:
feat/<description> - Bug fixes:
fix/<description> - Documentation:
docs/<description>
- Features:
- Commit your changes following Conventional Commits.
- Push to your fork and Open a PR against
getoptimum/optimum-gateway:main.
Before submitting, ensure:
-
make testpasses (including coverage) -
make lintpasses (we usegolangci-lint) - Your code is formatted using
go fmt - You've explained what changed and why in the PR description
- Error Handling: All errors must be checked.
- Logging: Use the internal logger, not
logrus. - Imports: Use the standard
errorspackage, avoidgithub.com/pkg/errors. - Commit Messages: Follow Conventional Commits (e.g.,
feat:,fix:,docs:). - Generated Code: If you modify
.protofiles, runmake protobefore committing.
All Pull Requests must pass our CI pipeline (Linting, Tests, Building) before they can be merged. If CI fails, please check the logs and fix the reported issues.
Open a GitHub Issue.