sourcemap view
Build and Publish / Metadata (push) Successful in 2s
Build and Publish / BuildAndDeployAmd64 (push) Successful in 1m4s

This commit is contained in:
mats committed 2026-09-19 15:49:44 +02:00
1 parent 412e430cac
commit 97743ea21c
10 files changed
+452 -147

No files matched your search

+25
View File
@@ -500,6 +500,31 @@ func (c *Collector) HandleSourceMap(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusCreated)
}
// HandleResolveStacks maps raw browser stacktraces back to source using the
// uploaded source maps. Body: {"items":[{"release":"...","stacktrace":"..."}]};
// the response has one resolved stacktrace per item, in order.
func (c *Collector) HandleResolveStacks(w http.ResponseWriter, r *http.Request) {
var req struct {
Items []struct {
Release string `json:"release"`
Stacktrace string `json:"stacktrace"`
} `json:"items"`
}
if err := json.NewDecoder(http.MaxBytesReader(w, r.Body, 4<<20)).Decode(&req); err != nil {
http.Error(w, "invalid body", http.StatusBadRequest)
return
}
out := make([]string, len(req.Items))
for i, it := range req.Items {
out[i] = it.Stacktrace
if c.sourceMaps != nil {
out[i] = c.sourceMaps.ResolveStack(it.Release, it.Stacktrace)
}
}
w.Header().Set("Content-Type", "application/json")
_ = json.NewEncoder(w).Encode(map[string]any{"resolved": out})
}
// HandleIssueByID returns a single issue by id, including its samples.
func (c *Collector) HandleIssueByID(w http.ResponseWriter, r *http.Request) {
id := r.PathValue("id")