devpulse

module
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2026 License: Apache-2.0

README

devpulse

Build Status Go Report Card

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.

  1. Fork and clone
  2. Create a feature branch
  3. Run make qualify
  4. Submit a pull request

License

Apache 2.0

Directories

Path Synopsis
cmd
devpulse-import command
devpulse-site command
pkg
net

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL