Thanks for contributing to Blnk. This guide explains how to get changes merged quickly and safely.
By participating in this project, you agree to follow the Code of Conduct.
- Report bugs and request features through GitHub issues.
- Improve documentation and examples.
- Fix bugs, add tests, and ship new features.
- Go
1.25.0or newer (this repo requires Go1.25.0ingo.mod) - Docker and Docker Compose
- PostgreSQL and Redis (you can run both via Docker Compose)
- Clone the repository:
git clone https://github.com/blnkfinance/blnk.git
cd blnk- Install dependencies:
go mod tidy- Build the binary:
go build -o blnk ./cmd/*.go- Start required services:
docker compose up -d postgres redis- Run migrations:
./blnk migrate up- Fast local test run:
go test -short ./...- Full test run:
go test ./...You can also use:
make test- Keep changes focused and minimal.
- Write or update tests for behavior changes.
- Run
gofmton changed Go files. - Avoid unrelated refactors in feature or bug-fix PRs.
- Keep public API changes backward-compatible unless clearly intentional.
When your change affects schema or persistence behavior:
- Add a migration in
sql/. - Follow the existing migration naming pattern.
- Include tests that validate the new behavior.
You can run the GitHub Actions CI pipeline locally using act before pushing:
- Install
act:
brew install act # macOS- Make sure Docker is running, then execute the test workflow:
act -W .github/workflows/go.ymlBefore opening a PR, ensure:
- The branch is rebased on the latest
main. go test ./...passes locally.- New behavior is covered by tests.
- API changes are reflected in docs/examples when relevant.
- PR description explains:
- What changed
- Why it changed
- How it was tested
- Fork the repository and create a feature branch.
- Commit your changes with clear commit messages.
- Push your branch and open a PR against
main. - Respond to review comments and update the PR until it is approved.
Please do not open public issues for security vulnerabilities. Contact the Blnk team privately first.