Thanks for your interest in contributing! We respond to issues and PRs within 24 hours.
We welcome code contributions. A CLA is required for all PRs so we can keep the OSS version free and also offer a commercial license.
# Clone
git clone https://github.com/Sentinel-Gate/Sentinelgate.git
cd Sentinelgate
# Build
go build -o sentinel-gate ./cmd/sentinel-gate
# Test
go test ./...
# Run
./sentinel-gate start- Check existing issues first
- Open a new issue with:
- What you expected
- What happened
- Steps to reproduce
- Sentinel Gate version (
sentinel-gate version)
Open an issue describing:
- The use case
- Why existing features don't solve it
- Proposed solution (optional)
Before your PR can be merged, you must sign the CLA:
- See
CLA.mdin this repo - A CLA bot may prompt you on your first PR
- Fork the repo
- Create a branch (
git checkout -b fix/issue-123) - Make changes
- Run tests (
go test ./...) - Run linter (
golangci-lint run) - Commit with clear message
- Open PR referencing the issue
- Go standard formatting (
go fmt) - Meaningful variable names
- Comments for non-obvious logic
- Tests for new functionality
/
├── cmd/sentinel-gate/ # CLI entry point
├── internal/
│ ├── adapter/ # Inbound (HTTP, stdio, admin) and outbound (MCP, state, CEL) adapters
│ ├── config/ # Configuration loading and validation
│ ├── domain/ # Core domain: proxy, policy, audit, auth, session
│ ├── port/ # Port interfaces (hexagonal architecture)
│ └── service/ # Application services
├── pkg/ # Public packages (MCP codec)
└── docs/ # Documentation
The project is licensed under AGPL-3.0.
A CLA is required to allow dual-licensing of contributions.
- Open an issue
- Email: hello@sentinelgate.co.uk