gddo-server: add isRobot field to gddoEvent
This will indicate whether the request to pkg.go.dev was made by a
robot.
Change-Id: I64931b9ff8a4da575d0614771a0575f2bd0746a0
Reviewed-on: https://go-review.googlesource.com/c/gddo/+/235448
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
Reviewed-by: Julie Qiu <julie@golang.org>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
diff --git a/gddo-server/main.go b/gddo-server/main.go
index e9a9fb1..e25a50f 100644
--- a/gddo-server/main.go
+++ b/gddo-server/main.go
@@ -1038,13 +1038,13 @@
if f, ok := w.(http.Flusher); ok {
f.Flush()
}
- if err := makePkgGoDevRequest(r, latency); err != nil {
+ if err := makePkgGoDevRequest(r, latency, s.isRobot(r)); err != nil {
log.Printf("makePkgGoDevRequest(%q, %d) error: %v", r.URL, latency, err)
}
}
-func makePkgGoDevRequest(r *http.Request, latency time.Duration) error {
- event := newGDDOEvent(r, latency)
+func makePkgGoDevRequest(r *http.Request, latency time.Duration, isRobot bool) error {
+ event := newGDDOEvent(r, latency, isRobot)
b, err := json.Marshal(event)
if err != nil {
return fmt.Errorf("json.Marshal(%v): %v", event, err)
@@ -1065,9 +1065,10 @@
Header http.Header
RedirectHost string
Latency time.Duration
+ IsRobot bool
}
-func newGDDOEvent(r *http.Request, latency time.Duration) *gddoEvent {
+func newGDDOEvent(r *http.Request, latency time.Duration, isRobot bool) *gddoEvent {
pkgGoDevURL := url.URL{Scheme: "https", Host: pkgGoDevHost}
return &gddoEvent{
Host: r.URL.Host,
@@ -1076,6 +1077,7 @@
Header: r.Header,
RedirectHost: pkgGoDevURL.String(),
Latency: latency,
+ IsRobot: isRobot,
}
}
diff --git a/gddo-server/main_test.go b/gddo-server/main_test.go
index 9e9d3e8..1624306 100644
--- a/gddo-server/main_test.go
+++ b/gddo-server/main_test.go
@@ -212,7 +212,8 @@
want.RedirectHost = "https://" + pkgGoDevHost
want.URL = test.url
want.Header = http.Header{}
- got := newGDDOEvent(r, want.Latency)
+ want.IsRobot = true
+ got := newGDDOEvent(r, want.Latency, want.IsRobot)
if diff := cmp.Diff(want, got); diff != "" {
t.Fatalf("mismatch (-want +got):\n%s", diff)
}