wip: update UTMs & display UTM only on first scan

Signed-off-by: David Wertenteil <dwertent@armosec.io>
This commit is contained in:
David Wertenteil
2023-03-04 23:05:38 +02:00
parent 2cda4864e7
commit 0698c99241
2 changed files with 35 additions and 14 deletions
@@ -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()
}
@@ -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())
}
}