From de18e8a9ed65e879546b232a3d06c5475f5bbe35 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Fri, 8 Feb 2019 22:43:44 -0500 Subject: [PATCH 1/2] Avoid polluting download stats on builds Recently we changed where we source released artifacts for usage in backwards compatibility tests. We now source these from artifacts.elastic.co. To avoid polluting the download stats from builds, we want to add the X-Elastic-No-KPI header to requests from artifacts.elastic.co. To do this, we hack the Ivy feature of custom HTTP header credentials and specify our desired headers. --- .../groovy/org/elasticsearch/gradle/BuildPlugin.groovy | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy index f240ebb52c8ba..c79062703c713 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy @@ -39,6 +39,7 @@ import org.gradle.api.artifacts.ModuleVersionIdentifier import org.gradle.api.artifacts.ProjectDependency import org.gradle.api.artifacts.ResolvedArtifact import org.gradle.api.artifacts.dsl.RepositoryHandler +import org.gradle.api.credentials.HttpHeaderCredentials import org.gradle.api.execution.TaskExecutionGraph import org.gradle.api.plugins.JavaBasePlugin import org.gradle.api.plugins.JavaPlugin @@ -50,6 +51,7 @@ import org.gradle.api.tasks.bundling.Jar import org.gradle.api.tasks.compile.GroovyCompile import org.gradle.api.tasks.compile.JavaCompile import org.gradle.api.tasks.javadoc.Javadoc +import org.gradle.authentication.http.HttpHeaderAuthentication import org.gradle.internal.jvm.Jvm import org.gradle.process.ExecResult import org.gradle.process.ExecSpec @@ -570,6 +572,13 @@ class BuildPlugin implements Plugin { patternLayout { artifact "elasticsearch/[module]-[revision](-[classifier]).[ext]" } + credentials(HttpHeaderCredentials) { + name = "X-Elastic-No-KPI" + value = "1" + } + authentication { + header(HttpHeaderAuthentication) + } } repos.maven { name "elastic" From 2e655888eb68fb6ec4e8a346c26fe5015bf6f577 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Fri, 8 Feb 2019 23:12:51 -0500 Subject: [PATCH 2/2] Add comment --- .../src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy | 1 + 1 file changed, 1 insertion(+) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy index c79062703c713..4f88a9791eb9d 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy @@ -572,6 +572,7 @@ class BuildPlugin implements Plugin { patternLayout { artifact "elasticsearch/[module]-[revision](-[classifier]).[ext]" } + // this header is not a credential but we hack the capability to send this header to avoid polluting our download stats credentials(HttpHeaderCredentials) { name = "X-Elastic-No-KPI" value = "1"