From 0698c99241a988fbf7f7d09ad0a8886e4e14822b Mon Sep 17 00:00:00 2001 From: David Wertenteil Date: Sat, 4 Mar 2023 23:05:38 +0200 Subject: [PATCH] wip: update UTMs & display UTM only on first scan Signed-off-by: David Wertenteil --- .../reporter/v2/reporteventreceiver.go | 14 ++++---- .../reporter/v2/reporteventreceiver_test.go | 35 +++++++++++++++---- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/core/pkg/resultshandling/reporter/v2/reporteventreceiver.go b/core/pkg/resultshandling/reporter/v2/reporteventreceiver.go index d55449fb..c937c243 100644 --- a/core/pkg/resultshandling/reporter/v2/reporteventreceiver.go +++ b/core/pkg/resultshandling/reporter/v2/reporteventreceiver.go @@ -14,6 +14,7 @@ import ( "github.com/kubescape/k8s-interface/workloadinterface" "github.com/kubescape/kubescape/v2/core/cautils" "github.com/kubescape/kubescape/v2/core/cautils/getter" + "github.com/kubescape/kubescape/v2/core/pkg/resultshandling/reporter" "github.com/kubescape/opa-utils/reporthandling" "github.com/kubescape/opa-utils/reporthandling/results/v1/prioritization" "github.com/kubescape/opa-utils/reporthandling/results/v1/resourcesresults" @@ -31,6 +32,8 @@ const ( SubmitContextRepository SubmitContext = "repository" ) +var _ reporter.IReport = &ReportEventReceiver{} + type ReportEventReceiver struct { httpClient *http.Client clusterName string @@ -121,13 +124,6 @@ func (report *ReportEventReceiver) GetURL() string { parseHost(&u) report.addPathURL(&u) - q := u.Query() - q.Add("utm_source", "GitHub") - q.Add("utm_medium", "CLI") - q.Add("utm_campaign", "Submit") - - u.RawQuery = q.Encode() - return u.String() } @@ -286,6 +282,10 @@ func (report *ReportEventReceiver) addPathURL(urlObj *url.URL) { q := urlObj.Query() q.Add("invitationToken", report.token) q.Add("customerGUID", report.customerGUID) + + // Adding utm parameters + q.Add("utm_source", "ARMOgithub") + q.Add("utm_medium", "createaccount") urlObj.RawQuery = q.Encode() } diff --git a/core/pkg/resultshandling/reporter/v2/reporteventreceiver_test.go b/core/pkg/resultshandling/reporter/v2/reporteventreceiver_test.go index 39f215a8..ea9b6593 100644 --- a/core/pkg/resultshandling/reporter/v2/reporteventreceiver_test.go +++ b/core/pkg/resultshandling/reporter/v2/reporteventreceiver_test.go @@ -11,13 +11,13 @@ import ( func TestReportEventReceiver_addPathURL(t *testing.T) { tests := []struct { - name string report *ReportEventReceiver urlObj *url.URL want *url.URL + name string }{ { - name: "add scan path", + name: "URL for submitted data", report: &ReportEventReceiver{ clusterName: "test", customerGUID: "FFFF", @@ -31,9 +31,30 @@ func TestReportEventReceiver_addPathURL(t *testing.T) { Host: "localhost:8080", }, want: &url.URL{ + Scheme: "https", + Host: "localhost:8080", + Path: "compliance/test", + RawQuery: "", + }, + }, + { + name: "URL for first scan", + report: &ReportEventReceiver{ + clusterName: "test", + customerGUID: "FFFF", + token: "XXXX", + reportID: "1234", + submitContext: SubmitContextScan, + }, + urlObj: &url.URL{ Scheme: "https", Host: "localhost:8080", - Path: "compliance/test", + }, + want: &url.URL{ + Scheme: "https", + Host: "localhost:8080", + Path: "account/sign-up", + RawQuery: "customerGUID=FFFF&invitationToken=XXXX&utm_medium=createaccount&utm_source=ARMOgithub", }, }, } @@ -59,7 +80,7 @@ func TestGetURL(t *testing.T) { "", SubmitContextScan, ) - assert.Equal(t, "https://cloud.armosec.io/compliance/test?utm_campaign=Submit&utm_medium=CLI&utm_source=GitHub", reporter.GetURL()) + assert.Equal(t, "https://cloud.armosec.io/compliance/test", reporter.GetURL()) } // Test rbac submit and registered url @@ -74,7 +95,7 @@ func TestGetURL(t *testing.T) { "", SubmitContextRBAC, ) - assert.Equal(t, "https://cloud.armosec.io/rbac-visualizer?utm_campaign=Submit&utm_medium=CLI&utm_source=GitHub", reporter.GetURL()) + assert.Equal(t, "https://cloud.armosec.io/rbac-visualizer", reporter.GetURL()) } // Test repo submit and registered url @@ -89,7 +110,7 @@ func TestGetURL(t *testing.T) { "XXXX", SubmitContextRepository, ) - assert.Equal(t, "https://cloud.armosec.io/repository-scanning/XXXX?utm_campaign=Submit&utm_medium=CLI&utm_source=GitHub", reporter.GetURL()) + assert.Equal(t, "https://cloud.armosec.io/repository-scanning/XXXX", reporter.GetURL()) } // Test submit and NOT registered url @@ -104,7 +125,7 @@ func TestGetURL(t *testing.T) { "", SubmitContextScan, ) - assert.Equal(t, "https://cloud.armosec.io/account/sign-up?customerGUID=1234&invitationToken=token&utm_campaign=Submit&utm_medium=CLI&utm_source=GitHub", reporter.GetURL()) + assert.Equal(t, "https://cloud.armosec.io/account/sign-up?customerGUID=1234&invitationToken=token&utm_medium=createaccount&utm_source=ARMOgithub", reporter.GetURL()) } }