Skip to content

Commit 40aed5f

Browse files
authored
Merge pull request #116 from snyk/feat/include-artifactory-version-in-user-agent
feat: include artifactory version in user agent
2 parents f4fa83e + 7925bd2 commit 40aed5f

3 files changed

Lines changed: 54 additions & 2 deletions

File tree

core/src/main/java/io/snyk/plugins/artifactory/SnykPlugin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.snyk.plugins.artifactory;
22

33
import io.snyk.plugins.artifactory.audit.AuditModule;
4+
import io.snyk.plugins.artifactory.configuration.UserAgent;
45
import io.snyk.plugins.artifactory.configuration.properties.ArtifactProperty;
56
import io.snyk.plugins.artifactory.configuration.ConfigurationModule;
67
import io.snyk.plugins.artifactory.exception.CannotScanException;
@@ -33,7 +34,6 @@
3334
public class SnykPlugin {
3435

3536
private static final Logger LOG = LoggerFactory.getLogger(SnykPlugin.class);
36-
private static final String API_USER_AGENT = "snyk-artifactory-plugin/";
3737

3838
private ConfigurationModule configurationModule;
3939
private AuditModule auditModule;
@@ -155,7 +155,7 @@ private SnykClient createSnykClient(@Nonnull ConfigurationModule configurationMo
155155
var config = SnykConfig.newBuilder()
156156
.setBaseUrl(baseUrl)
157157
.setToken(token)
158-
.setUserAgent(API_USER_AGENT + pluginVersion)
158+
.setUserAgent(UserAgent.getUserAgent(pluginVersion))
159159
.setTrustAllCertificates(trustAllCertificates)
160160
.setSslCertificatePath(sslCertificatePath)
161161
.setHttpProxyHost(httpProxyHost)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package io.snyk.plugins.artifactory.configuration;
2+
3+
import java.util.Optional;
4+
import java.util.function.Function;
5+
6+
public class UserAgent {
7+
private static final String PREFIX = "snyk-artifactory-plugin/";
8+
public static String ARTIFACTORY_VERSION_ENV = "ARTIFACTORY_VERSION";
9+
10+
public static String getUserAgent(String pluginVersion) {
11+
return getUserAgent(pluginVersion, System::getenv);
12+
}
13+
14+
public static String getUserAgent(String pluginVersion, Function<String, String> getEnv) {
15+
String pluginPart = PREFIX + pluginVersion;
16+
17+
String artifactoryPart = Optional.ofNullable(getEnv.apply(ARTIFACTORY_VERSION_ENV))
18+
.map(v -> " artifactory/" + v)
19+
.orElse("");
20+
21+
return pluginPart + artifactoryPart;
22+
}
23+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package io.snyk.plugins.artifactory.configuration;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import java.util.HashMap;
6+
import java.util.Map;
7+
8+
import static io.snyk.plugins.artifactory.configuration.UserAgent.ARTIFACTORY_VERSION_ENV;
9+
import static org.junit.jupiter.api.Assertions.*;
10+
11+
class UserAgentTest {
12+
13+
@Test
14+
void whenArtifactoryVersionEnvAvailable() {
15+
Map<String, String> env = new HashMap<>();
16+
env.put(ARTIFACTORY_VERSION_ENV, "1.2.3");
17+
18+
String userAgent = UserAgent.getUserAgent("3.4.5", env::get);
19+
20+
assertEquals("snyk-artifactory-plugin/3.4.5 artifactory/1.2.3", userAgent);
21+
}
22+
23+
@Test
24+
void whenArtifactoryVersionEnvNotAvailable() {
25+
String userAgent = UserAgent.getUserAgent("3.4.5", env -> null);
26+
27+
assertEquals("snyk-artifactory-plugin/3.4.5", userAgent);
28+
}
29+
}

0 commit comments

Comments
 (0)