From d22cccdc4d7c105f4ff8a4ddbf89b05ecf8847d6 Mon Sep 17 00:00:00 2001 From: "nataliya.valtman" Date: Mon, 29 Aug 2022 15:22:19 +0200 Subject: [PATCH] Add property to protect sensitive data in http reports #KT-53773 Fixed --- .../gradle/plugin/PropertiesProvider.kt | 3 +++ .../statistics/CompileStatisticsData.kt | 15 ++++++------ .../gradle/report/BuildReportsService.kt | 24 ++++++++++++++++--- .../kotlin/gradle/report/ReportingSettings.kt | 5 ++-- .../kotlin/gradle/report/configureReporing.kt | 2 +- 5 files changed, 36 insertions(+), 13 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt index 0db34334a90..36a9da54b7d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt @@ -97,6 +97,9 @@ internal class PropertiesProvider private constructor(private val project: Proje val buildReportHttpPassword: String? get() = this.property("kotlin.build.report.http.password") + val buildReportHttpVerboseEnvironment: Boolean + get() = property("kotlin.build.report.http.verbose_environment")?.toBoolean() ?: false + val buildReportBuildScanCustomValuesLimit: Int get() = property("kotlin.build.report.build_scan.custom_values_limit")?.toInt() ?: 1000 diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/CompileStatisticsData.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/CompileStatisticsData.kt index 54d7fcc3afd..192e1fe7145 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/CompileStatisticsData.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/CompileStatisticsData.kt @@ -12,6 +12,7 @@ import java.text.SimpleDateFormat import java.util.* //Sensitive data. This object is used directly for statistic via http +private val formatter = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").also { it.timeZone = TimeZone.getTimeZone("UTC")} data class CompileStatisticsData( val version: Int = 2, val projectName: String?, @@ -32,11 +33,8 @@ data class CompileStatisticsData( val buildTimesMetrics: Map, val performanceMetrics: Map, val type: String = BuildDataType.TASK_DATA.name -) { - companion object { - private val formatter = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").also { it.timeZone = TimeZone.getTimeZone("UTC")} - } -} +) + enum class StatTag { ABI_SNAPSHOT, @@ -58,7 +56,7 @@ enum class BuildDataType { data class GradleBuildStartParameters( val tasks: List, val excludedTasks: Set, - val currentDir: String, + val currentDir: String?, val projectProperties: List, val systemProperties: List, ) : java.io.Serializable @@ -70,7 +68,10 @@ data class BuildFinishStatisticsData( val buildUuid: String = "Unset", val label: String?, val totalTime: Long, - val type: String = BuildDataType.BUILD_DATA.name + val type: String = BuildDataType.BUILD_DATA.name, + val finishTime: Long, + val timestamp: String = formatter.format(finishTime), + val hostName: String? = "Unset", ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildReportsService.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildReportsService.kt index f30b63fd293..b9877e2dc86 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildReportsService.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildReportsService.kt @@ -93,7 +93,7 @@ abstract class BuildReportsService : BuildService