package web import ( "net/http" "github.com/rs/zerolog" "github.com/xlgmokha/x/pkg/log" "github.com/xlgmokha/x/pkg/mapper" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/pls" ) type Transport struct { Logger *zerolog.Logger } func (r *Transport) RoundTrip(request *http.Request) (*http.Response, error) { ctx := r.Logger.WithContext(request.Context()) log.WithFields(ctx, mapper.MapFrom[*http.Request, log.Fields](request)) defer pls.FlushLog(ctx) response, err := http.DefaultTransport.RoundTrip(request) if err != nil { pls.LogError(ctx, err) return response, err } log.WithFields(ctx, log.Fields{"status_code": response.StatusCode}) return response, nil }