From eef9685267727fc92f2c379f71c5c07c34f49b0c Mon Sep 17 00:00:00 2001 From: Daniel Mohedano Date: Fri, 23 May 2025 17:07:17 +0200 Subject: [PATCH] use tag as fallback in api requests if no branch is available --- .../config/ExecutionSettingsFactoryImpl.java | 1 + .../config/TracerEnvironment.java | 9 +++++++- .../config/TracerEnvironmentTest.groovy | 21 +++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 dd-java-agent/agent-ci-visibility/src/test/groovy/datadog/trace/civisibility/config/TracerEnvironmentTest.groovy diff --git a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/config/ExecutionSettingsFactoryImpl.java b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/config/ExecutionSettingsFactoryImpl.java index 3e0a62105e5..36aae05d6fa 100644 --- a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/config/ExecutionSettingsFactoryImpl.java +++ b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/config/ExecutionSettingsFactoryImpl.java @@ -106,6 +106,7 @@ private TracerEnvironment buildTracerEnvironment(JvmInfo jvmInfo, @Nullable Stri .env(config.getEnv()) .repositoryUrl(gitInfo.getRepositoryURL()) .branch(gitInfo.getBranch()) + .tag(gitInfo.getTag()) .sha(gitInfo.getCommit().getSha()) .commitMessage(gitInfo.getCommit().getFullMessage()) .osPlatform(wellKnownTags.getOsPlatform().toString()) diff --git a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/config/TracerEnvironment.java b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/config/TracerEnvironment.java index a405902bd2c..c06210123a9 100644 --- a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/config/TracerEnvironment.java +++ b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/config/TracerEnvironment.java @@ -2,6 +2,7 @@ import com.squareup.moshi.Json; import datadog.trace.api.civisibility.config.Configurations; +import datadog.trace.util.Strings; import java.util.HashMap; import java.util.Map; @@ -111,6 +112,7 @@ public static final class Builder { private String env; private String repositoryUrl; private String branch; + private String tag; // will act as fallback if no branch is provided private String sha; private String commitMessage; private String osPlatform; @@ -143,6 +145,11 @@ public Builder branch(String branch) { return this; } + public Builder tag(String tag) { + this.tag = tag; + return this; + } + public Builder sha(String sha) { this.sha = sha; return this; @@ -203,7 +210,7 @@ public TracerEnvironment build() { service, env, repositoryUrl, - branch, + Strings.isNotBlank(branch) ? branch : tag, sha, commitMessage, new Configurations( diff --git a/dd-java-agent/agent-ci-visibility/src/test/groovy/datadog/trace/civisibility/config/TracerEnvironmentTest.groovy b/dd-java-agent/agent-ci-visibility/src/test/groovy/datadog/trace/civisibility/config/TracerEnvironmentTest.groovy new file mode 100644 index 00000000000..8145bf4adbb --- /dev/null +++ b/dd-java-agent/agent-ci-visibility/src/test/groovy/datadog/trace/civisibility/config/TracerEnvironmentTest.groovy @@ -0,0 +1,21 @@ +package datadog.trace.civisibility.config + +import spock.lang.Specification + +class TracerEnvironmentTest extends Specification { + def "test fallback to tag on no branch"() { + setup: + def builder = TracerEnvironment.builder() + def environment = builder.branch(branch).tag(tag).build() + + expect: + environment.branch == environmentBranch + + where: + branch | tag | environmentBranch + "main" | "v.1.0.0" | "main" + "main" | null | "main" + null | "v.1.0.0" | "v.1.0.0" + null | null | null + } +}