From faa87c17bd0f2c85eba24563d2bbc0f27e59c14a Mon Sep 17 00:00:00 2001 From: Kanishk Date: Mon, 4 May 2026 16:10:27 +0530 Subject: [PATCH] RTECO-1017 - enrich User-Agent with agent/CI context and reuse Cursor trace ID for API calls --- go.mod | 4 ++-- go.sum | 4 ++-- main.go | 17 ++++++++++++----- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 9abcc17b2..d3f63219c 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/jfrog/gofrog v1.7.6 github.com/jfrog/jfrog-cli-application v1.0.2-0.20260511133105-55a0ab56fd64 github.com/jfrog/jfrog-cli-artifactory v0.8.1-0.20260515045427-eb0cec44a4e2 - github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260515092054-cca97077293d + github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260519061857-676e48fbefcd github.com/jfrog/jfrog-cli-evidence v0.9.4 github.com/jfrog/jfrog-cli-platform-services v1.10.1-0.20260430094150-ce7d9b371c6f github.com/jfrog/jfrog-cli-security v1.29.0 @@ -252,7 +252,7 @@ require ( // replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.13.1-0.20260428071432-1e9d9a1991ad -// replace github.com/jfrog/jfrog-cli-core/v2 => github.com/agrasth/jfrog-cli-core/v2 v2.0.0-20260428093456-2bc01db3b153 +// replace github.com/jfrog/jfrog-cli-core/v2 => github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260518123155-036d9195c4e9 //replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.54.2-0.20251007084958-5eeaa42c31a6 diff --git a/go.sum b/go.sum index 44e91c224..95a4f6772 100644 --- a/go.sum +++ b/go.sum @@ -420,8 +420,8 @@ github.com/jfrog/jfrog-cli-application v1.0.2-0.20260511133105-55a0ab56fd64 h1:b github.com/jfrog/jfrog-cli-application v1.0.2-0.20260511133105-55a0ab56fd64/go.mod h1:cKqb/JgN+XuD4RhOxvSZnyGyXw3cJsTZfQT3rk9MCho= github.com/jfrog/jfrog-cli-artifactory v0.8.1-0.20260515045427-eb0cec44a4e2 h1:1nCyNPDxH2EXUz0zx2bFBViYrW/KoqGcQDH9Jm8HHs8= github.com/jfrog/jfrog-cli-artifactory v0.8.1-0.20260515045427-eb0cec44a4e2/go.mod h1:XESHQN9MEeje13fJaXtbljidwTqlJO+qhhUHHDxwntQ= -github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260515092054-cca97077293d h1:6IRzTppsSWOMIRVXmFVlnOHi0QLs5+4Mfd3sHATsRTw= -github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260515092054-cca97077293d/go.mod h1:bh1ptuSLGZT4l51hl+xgUlS7sAd8K77tKn0wa5n7TQo= +github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260519061857-676e48fbefcd h1:R7wPNFOAFfPDb8ZQPw3hJcbaPIGsi325fZaLoWwGTGg= +github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260519061857-676e48fbefcd/go.mod h1:bh1ptuSLGZT4l51hl+xgUlS7sAd8K77tKn0wa5n7TQo= github.com/jfrog/jfrog-cli-evidence v0.9.4 h1:RAqZYaH2RrzmhW+bGA7dx/yTqa4X1fZ4/5V7VVMSJtc= github.com/jfrog/jfrog-cli-evidence v0.9.4/go.mod h1:nLSLqLIhQz1Hi2n+KjHZTyK1mcmPLevv41LjItLswmE= github.com/jfrog/jfrog-cli-platform-services v1.10.1-0.20260430094150-ce7d9b371c6f h1:M1cesbKYSznwPA76dNctjCELxGx34TSSjwoYnJm9/6Y= diff --git a/main.go b/main.go index 4dfadf02e..0a5dbb7d9 100644 --- a/main.go +++ b/main.go @@ -16,6 +16,7 @@ import ( appTrustCLI "github.com/jfrog/jfrog-cli-application/cli" artifactoryCLI "github.com/jfrog/jfrog-cli-artifactory/cli" corecommon "github.com/jfrog/jfrog-cli-core/v2/docs/common" + corecommands "github.com/jfrog/jfrog-cli-core/v2/common/commands" "github.com/jfrog/jfrog-cli-core/v2/plugins/components" coreconfig "github.com/jfrog/jfrog-cli-core/v2/utils/config" "github.com/jfrog/jfrog-cli-core/v2/utils/coreutils" @@ -163,13 +164,19 @@ func displaySurveyLinkIfNeeded() { fmt.Fprintln(os.Stderr, "\n💬 Help us improve JFrog CLI! \033]8;;https://www.surveymonkey.com/r/JFCLICLI\033\\https://www.surveymonkey.com/r/JFCLICLI\033]8;;\033\\") } -// This command generates and sets an Uber Trace ID token which will be attached as a header to every request. +// This command sets an Uber Trace ID token which will be attached as a header to every request. +// If the parent agent (e.g. Cursor) propagates a trace ID via env, reuse it so server-side logs +// correlate end-to-end with the agent's trace. Otherwise generate a fresh one. // This allows users to easily identify which logs on the server side are related to the command executed by the CLI. func setUberTraceIdToken() error { - var err error - traceID, err = generateTraceIdToken() - if err != nil { - return err + if propagated := corecommands.DetectExecutionContext().TraceID; propagated != "" { + traceID = propagated + } else { + generated, err := generateTraceIdToken() + if err != nil { + return err + } + traceID = generated } httpclient.SetUberTraceIdToken(traceID) clientlog.Debug(traceIdLogMsg, traceID)