Skip to content
Snippets Groups Projects

Migrate to sentry-go

2 unresolved threads
1 file
+ 1
0
Compare changes
  • Side-by-side
  • Inline
@@ -3,29 +3,35 @@ package errortracking
import (
"net/http"
"github.com/getsentry/raven-go"
"github.com/getsentry/sentry-go"
"gitlab.com/gitlab-org/labkit/mask"
)
// WithRequest will capture details of the request along with the error
func WithRequest(r *http.Request) CaptureOption {
return func(interfaces ravenInterfaces, _ raven.Extra) ravenInterfaces {
cleanHeadersForRaven(r)
return append(interfaces, raven.NewHttp(r))
return func(event *sentry.Event) {
event.Request = redactRequestInfo(r)
event.Request.URL = r.URL.String()
event.Request.Headers["host"] = r.URL.Hostname()
event.Request.Method = r.Method
}
}
// cleanHeadersForRaven strips out information
// that shouldn't be send by the client
func cleanHeadersForRaven(r *http.Request) *raven.Http {
// redactRequestInfo strips out information that shouldn't be send by the client
func redactRequestInfo(r *http.Request) sentry.Request {
if r == nil {
return nil
return sentry.Request{}
}
req := sentry.Request{
Headers: make(map[string]string),
}
report := raven.NewHttp(r)
for header := range report.Headers {
for header, v := range r.Header {
req.Headers[header] = v[0]
if mask.IsSensitiveHeader(header) {
report.Headers[header] = mask.RedactionString
req.Headers[header] = mask.RedactionString
}
}
@@ -37,7 +43,7 @@ func cleanHeadersForRaven(r *http.Request) *raven.Http {
}
}
}
report.Query = params.Encode()
req.QueryString = params.Encode()
return report
return req
}
Loading