FOSSMate is designed for two operating modes:
- Managed deployment
- End users install the GitHub App.
- FOSSMate is hosted and maintained by operators.
- No local infrastructure needed for maintainers.
- Self-hosted deployment
- Teams run backend and infrastructure themselves.
- Same webhook/event model, different hosting ownership.
Core functionality must remain available on OSS infrastructure:
- FastAPI backend
- SQLite/Postgres metadata store
- Qdrant vector store
- Ollama/local or self-hosted inference endpoints
Proprietary APIs are optional adapters, not architectural dependencies.
- Validate and ingest webhooks
- Normalize events and queue processing
- Execute issue/PR automation logic
- Write results back to GitHub (comments, labels, checks)
- Persist operational records for replay/audit/reporting
- GitHub App JWT + installation token flow is default auth path
- Webhook signatures are required
- Secrets are env-managed; never hardcoded
- Private key files (
.pem) must be excluded from version control
- Idempotency keys prevent duplicate work
- Delivery state machine:
queued -> processing -> done/failed - Replay endpoints support recovery from transient failures
- Feature flags support staged rollout per installation
A maintainer should:
- Install the app
- Continue normal issue/PR workflow
- Receive automated triage and review assistance with minimal setup friction