You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
git clone https://github.com/mchmarny/devpulse.git &&cd devpulse
make tidy # format code and vendor dependencies
make test# unit tests with race detector
make lint # go vet + golangci-lint + yamllint
make build # build binary for current platform
make qualify # full check: test + lint + vulncheck + e2e
Tool versions and quality thresholds are centralized in .settings.yaml.
Development Workflow
1. Create a branch
git checkout -b feat/my-feature
2. Make changes
Read existing code in the package before modifying it
Write tests alongside your code
Small, focused commits — each addresses one logical change
3. Test and lint
make test# unit tests with race detector
make lint # go vet + golangci-lint + yamllint
4. Run locally
make server # start dashboard with debug logging
5. Qualify before submitting
make qualify # test + lint + vulncheck + e2e
This must pass before any PR is submitted.
Make Targets
Quality
Target
Description
make qualify
Full qualification (test + lint + vulncheck + e2e)
make test
Unit tests with race detector and coverage
make test-coverage
Tests with coverage threshold enforcement
make lint
Go + YAML linting
make vulncheck
Vulnerability scanning with govulncheck
make e2e
End-to-end CLI tests
make bench
Run benchmarks
Build
Target
Description
make build
Build binary for current OS/arch (output in ./dist)
make release
Full release with goreleaser (snapshot)
Release
Target
Description
make bump-patch
Bump patch version (0.10.1 → 0.10.2) and push tag
make bump-minor
Bump minor version (0.10.1 → 0.11.0) and push tag
make bump-major
Bump major version (0.10.1 → 1.0.0) and push tag
Pushing a version tag triggers the CI release workflow (goreleaser build, cosign signing, SBOM, attestations, Homebrew tap update).
Maintenance
Target
Description
make tidy
Format code, tidy modules, vendor dependencies
make upgrade
Upgrade all dependencies to latest
make clean
Clean build artifacts
make clean-all
Deep clean including Go module cache
make info
Print version, commit, branch, Go version, linter version
make server
Start dev server with debug logging
make help
Show all available targets
Debugging
Common Issues
Issue
Solution
Tests fail with race conditions
Check for shared state in goroutines
Linter errors
Run make lint and fix reported issues
Build failures
Run make tidy to update dependencies
Import hits rate limit
Re-run; the importer uses jitter backoff automatically
make server fails
Ensure you have imported data first (devpulse import --org <org>)
Running Specific Tests
# Single test with verbose output
go test -v ./pkg/data/... -run TestSpecificFunction
# Tests with race detector
go test -race ./...
# Coverage report
go test -coverprofile=cover.out ./...
go tool cover -html=cover.out
Debug Logging
# Via make
make server
# Directly
go run ./cmd/devpulse server --debug
# JSON format (useful for log aggregators)
go run ./cmd/devpulse server --debug --log-json