Thank you for your interest in contributing! Okapi thrives on community-added service adapters.
Most status pages (GitHub, Stripe, etc.) use Atlassian Statuspage. These can be added without writing any Go code.
- Fork the repository.
- Identify the status subdomain: Visit the service's status page and check if it has a
/api/v2/summary.jsonendpoint. - Create a new YAML file in
adapters/config/<service-id>.yaml:id: my-service display_name: My Service Name kind: statuspage subdomain: status.myservice.com poll_interval_seconds: 60
- Test your adapter:
go run main.go # Verify via curl http://localhost:8080/health/my-service - Submit a Pull Request.
For services with custom APIs (like AWS or Azure):
- Create a new file in
adapters/code/<service-id>.go. - Implement the
HealthAdapterinterface. - Register it in
main.go. - Include unit tests in
adapters/code/<service-id>_test.go.
- Hot Reload: Use
air. - Testing: Run
go test ./.... - Linting: We follow standard Go formatting (
go fmt).
Please be respectful and professional in all interactions within this project.