github.com/kubeshop/testkube@v1.17.23/pkg/telemetry/sender_tka.go (about) 1 package telemetry 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "fmt" 7 "io" 8 "net/http" 9 ) 10 11 const ( 12 testkubeTelemetryUrl = "https://analytics.testkube.io" 13 ) 14 15 func TestkubeAnalyticsSender(client *http.Client, payload Payload) (out string, err error) { 16 17 jsonData, err := json.Marshal(payload) 18 if err != nil { 19 return out, err 20 } 21 22 request, err := http.NewRequest("POST", testkubeTelemetryUrl, bytes.NewBuffer(jsonData)) 23 if err != nil { 24 return out, err 25 } 26 27 request.Header.Set("Content-Type", "application/json") 28 resp, err := client.Do(request) 29 if err != nil { 30 return out, err 31 } 32 defer resp.Body.Close() 33 b, err := io.ReadAll(resp.Body) 34 35 if resp.StatusCode > 300 { 36 return out, fmt.Errorf("could not POST, statusCode: %d", resp.StatusCode) 37 } 38 return fmt.Sprintf("status: %d - %s", resp.StatusCode, b), err 39 40 }