devpulse

Multi-tenant SaaS for GitHub project health analytics. Users sign in with GitHub OAuth, install a GitHub App on their repos, and get a hosted dashboard at devpulse.thingz.io.
Development
git clone https://github.com/thingzio/devpulse.git && cd devpulse
make test # unit tests with race detector
make lint # go vet + golangci-lint
make qualify # test + lint + govulncheck + e2e
See docs/DEVELOPMENT.md for prerequisites, make targets, and debugging.
Architecture
Single binary with two subcommands:
| Binary |
Purpose |
Deploy |
devpulse-site |
HTTP server: dashboard, API, OAuth, webhooks |
Cloud Run service |
devpulse-import |
Scheduled tenant data import worker |
Cloud Run job (hourly) |
Key packages:
cmd/devpulse-site/ HTTP server (dashboard, OAuth, webhooks, data API)
cmd/devpulse-import/ Batch import worker
pkg/tenant/ Tenant CRUD, sessions, GitHub App, installations
pkg/middleware/ Auth middleware, tenant scope (RLS)
pkg/oauth/ GitHub OAuth web flow
pkg/data/ Store interface, PostgreSQL implementation
pkg/data/postgres/ Queries, migrations (base + SaaS)
pkg/data/ghutil/ GitHub API helpers (rate limiting, user mapping)
infra/saas/ Terraform for GCP infrastructure
Tenant isolation uses PostgreSQL Row-Level Security. See docs/ARCHITECTURE.md for details.
Contributing
See CONTRIBUTING.md for guidelines and docs/DEVELOPMENT.md for setup.
- Fork and clone
- Create a feature branch
- Run
make qualify
- Submit a pull request
License
Apache 2.0