49d514c050
Forgebot is a K8s operator + API service for dispatching AI agent jobs from git forge commands. Includes: - CRDs: AgentPool, AgentTask, ProviderQueue, RepositoryBinding - API server with webhook handler, task queue, and comment proxy - Operator controllers for task scheduling and job management - Gitea provider with webhook parsing and signature verification - PostgreSQL database with auto-migration - Woodpecker CI pipelines and multi-stage Dockerfiles
31 lines
598 B
Go
31 lines
598 B
Go
package handlers
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
|
|
"git.unkin.net/unkin/forgebot/internal/database"
|
|
)
|
|
|
|
type HealthHandler struct {
|
|
db *database.DB
|
|
}
|
|
|
|
func NewHealthHandler(db *database.DB) *HealthHandler {
|
|
return &HealthHandler{db: db}
|
|
}
|
|
|
|
func (h *HealthHandler) Health(w http.ResponseWriter, r *http.Request) {
|
|
status := "ok"
|
|
code := http.StatusOK
|
|
|
|
if !h.db.Healthy(r.Context()) {
|
|
status = "degraded"
|
|
code = http.StatusServiceUnavailable
|
|
}
|
|
|
|
w.Header().Set("Content-Type", "application/json")
|
|
w.WriteHeader(code)
|
|
json.NewEncoder(w).Encode(map[string]string{"status": status})
|
|
}
|