From 556265c9799b08952915b377ec648302bfec60b2 Mon Sep 17 00:00:00 2001 From: Eyal Ben Moshe Date: Sun, 22 Dec 2024 20:25:02 +0200 Subject: [PATCH] Internal API - Visibility System improvements (#1315) --- go.mod | 4 +-- go.sum | 4 +-- utils/usage/visibility_system_manager.go | 32 +++---------------- utils/usage/visibility_system_manager_test.go | 6 ++-- 4 files changed, 13 insertions(+), 33 deletions(-) diff --git a/go.mod b/go.mod index b7a19a152..ca3eae9a2 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/jedib0t/go-pretty/v6 v6.6.3 github.com/jfrog/build-info-go v1.10.7 github.com/jfrog/gofrog v1.7.6 - github.com/jfrog/jfrog-client-go v1.48.4 + github.com/jfrog/jfrog-client-go v1.48.5 github.com/magiconair/properties v1.8.7 github.com/manifoldco/promptui v0.9.0 github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c @@ -96,7 +96,7 @@ require ( gopkg.in/warnings.v0 v0.1.2 // indirect ) -// replace github.com/jfrog/jfrog-client-go => github.com/eyalbe4/jfrog-client-go v1.28.1-0.20241220200217-c4b9ef90c453 +// replace github.com/jfrog/jfrog-client-go => github.com/eyalbe4/jfrog-client-go v1.28.1-0.20241222155750-04d75d451f23 // replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.8.9-0.20241121100855-e7a75ceee2bd diff --git a/go.sum b/go.sum index 02ff60664..302de5215 100644 --- a/go.sum +++ b/go.sum @@ -93,8 +93,8 @@ github.com/jfrog/build-info-go v1.10.7 h1:10NVHYg0193gJpQft+S4WQfvYMtj5jlwwhJRvk github.com/jfrog/build-info-go v1.10.7/go.mod h1:JcISnovFXKx3wWf3p1fcMmlPdt6adxScXvoJN4WXqIE= github.com/jfrog/gofrog v1.7.6 h1:QmfAiRzVyaI7JYGsB7cxfAJePAZTzFz0gRWZSE27c6s= github.com/jfrog/gofrog v1.7.6/go.mod h1:ntr1txqNOZtHplmaNd7rS4f8jpA5Apx8em70oYEe7+4= -github.com/jfrog/jfrog-client-go v1.48.4 h1:uXvBr2ebFKpBRUhWgC9TSSJe32IbSYGlbDp9tDzBcaY= -github.com/jfrog/jfrog-client-go v1.48.4/go.mod h1:2ySOMva54L3EYYIlCBYBTcTgqfrrQ19gtpA/MWfA/ec= +github.com/jfrog/jfrog-client-go v1.48.5 h1:q8v8oZ2HwwVw6+ZCwKbuIpUmxpWUeZzvTASQl/QKxKw= +github.com/jfrog/jfrog-client-go v1.48.5/go.mod h1:2ySOMva54L3EYYIlCBYBTcTgqfrrQ19gtpA/MWfA/ec= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= diff --git a/utils/usage/visibility_system_manager.go b/utils/usage/visibility_system_manager.go index aa1cd78f2..e9053bf01 100644 --- a/utils/usage/visibility_system_manager.go +++ b/utils/usage/visibility_system_manager.go @@ -1,12 +1,12 @@ package usage import ( - "encoding/json" "os" "github.com/jfrog/jfrog-cli-core/v2/artifactory/utils" "github.com/jfrog/jfrog-cli-core/v2/utils/config" "github.com/jfrog/jfrog-cli-core/v2/utils/coreutils" + "github.com/jfrog/jfrog-client-go/jfconnect/services" ) type VisibilitySystemManager struct { @@ -19,24 +19,8 @@ func NewVisibilitySystemManager(serverDetails *config.ServerDetails) *Visibility } } -type labels struct { - ProductID string `json:"product_id"` - FeatureID string `json:"feature_id"` - OIDCUsed string `json:"oidc_used"` - JobID string `json:"job_id"` - RunID string `json:"run_id"` - GitRepo string `json:"git_repo"` - GhTokenForCodeScanningAlertsProvided string `json:"gh_token_for_code_scanning_alerts_provided"` -} - -type visibilityMetric struct { - Value int `json:"value"` - MetricsName string `json:"metrics_name"` - Labels labels `json:"labels"` -} - -func (vsm *VisibilitySystemManager) createMetric(commandName string) ([]byte, error) { - metricLabels := labels{ +func (vsm *VisibilitySystemManager) createMetric(commandName string) services.VisibilityMetric { + metricLabels := services.Labels{ ProductID: coreutils.GetCliUserAgentName(), FeatureID: commandName, OIDCUsed: os.Getenv("JFROG_CLI_USAGE_OIDC_USED"), @@ -46,13 +30,11 @@ func (vsm *VisibilitySystemManager) createMetric(commandName string) ([]byte, er GhTokenForCodeScanningAlertsProvided: os.Getenv("JFROG_CLI_USAGE_GH_TOKEN_FOR_CODE_SCANNING_ALERTS_PROVIDED"), } - metric := visibilityMetric{ + return services.VisibilityMetric{ Value: 1, MetricsName: "jfcli_commands_count", Labels: metricLabels, } - - return json.Marshal(metric) } func (vsm *VisibilitySystemManager) SendUsage(commandName string) error { @@ -60,9 +42,5 @@ func (vsm *VisibilitySystemManager) SendUsage(commandName string) error { if err != nil { return err } - metric, err := vsm.createMetric(commandName) - if err != nil { - return err - } - return manager.PostMetric(metric) + return manager.PostVisibilityMetric(vsm.createMetric(commandName)) } diff --git a/utils/usage/visibility_system_manager_test.go b/utils/usage/visibility_system_manager_test.go index d5888fb4d..bc27f4433 100644 --- a/utils/usage/visibility_system_manager_test.go +++ b/utils/usage/visibility_system_manager_test.go @@ -1,6 +1,7 @@ package usage import ( + "encoding/json" "testing" "github.com/jfrog/jfrog-cli-core/v2/utils/coreutils" @@ -29,7 +30,8 @@ func TestCreateMetric(t *testing.T) { }() commandName := "testCommand" - metric, err := NewVisibilitySystemManager(nil).createMetric(commandName) + metric := NewVisibilitySystemManager(nil).createMetric(commandName) + metricJSON, err := json.Marshal(metric) assert.NoError(t, err) // Define the expected JSON structure @@ -48,5 +50,5 @@ func TestCreateMetric(t *testing.T) { }` // Compare the generated JSON to the expected JSON - assert.JSONEq(t, expectedJSON, string(metric)) + assert.JSONEq(t, expectedJSON, string(metricJSON)) }