feat: migrate receiver to Fuego framework with OpenAPI generation
All checks were successful
ci / ci (push) Successful in 2m2s
ci / goreleaser (push) Successful in 2m29s

Replace net/http handlers with Fuego framework for automatic OpenAPI 3.0
spec generation. Add generated Go client package, OpenAPI extraction
script, and update Makefile with separate build/run targets for both
binaries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Manuel Ganter 2026-02-18 11:12:14 +01:00
parent 479c13f596
commit bc9d0dd8ea
No known key found for this signature in database
11 changed files with 2245 additions and 252 deletions

View file

@ -14,6 +14,8 @@ import (
"testing"
"time"
"github.com/go-fuego/fuego"
"edp.buildth.ing/DevFW-CICD/forgejo-runner-sizer/internal/receiver"
"edp.buildth.ing/DevFW-CICD/forgejo-runner-sizer/internal/summary"
)
@ -33,10 +35,17 @@ func setupTestReceiver(t *testing.T) (*receiver.Store, *httptest.Server, func())
}
handler := receiver.NewHandler(store, slog.New(slog.NewTextHandler(io.Discard, nil)), testReadToken, testHMACKey, 0)
mux := http.NewServeMux()
handler.RegisterRoutes(mux)
s := fuego.NewServer(
fuego.WithoutStartupMessages(),
fuego.WithEngineOptions(
fuego.WithOpenAPIConfig(fuego.OpenAPIConfig{
Disabled: true,
}),
),
)
handler.RegisterRoutes(s)
server := httptest.NewServer(mux)
server := httptest.NewServer(s.Mux)
cleanup := func() {
server.Close()
@ -372,10 +381,17 @@ func setupTestReceiverWithToken(t *testing.T, readToken, hmacKey string) (*recei
}
handler := receiver.NewHandler(store, slog.New(slog.NewTextHandler(io.Discard, nil)), readToken, hmacKey, 0)
mux := http.NewServeMux()
handler.RegisterRoutes(mux)
s := fuego.NewServer(
fuego.WithoutStartupMessages(),
fuego.WithEngineOptions(
fuego.WithOpenAPIConfig(fuego.OpenAPIConfig{
Disabled: true,
}),
),
)
handler.RegisterRoutes(s)
server := httptest.NewServer(mux)
server := httptest.NewServer(s.Mux)
cleanup := func() {
server.Close()