@@ -15,16 +15,26 @@ pluginManagement {
1515 propertyName.replace(" ." , " _" ).uppercase()
1616 )?.ifEmpty { null }
1717
18- fun getSpaceUsername (): String? {
19- val username = " kotlinx.rpc.team.space.username"
20- return settings.providers.gradleProperty(username).orNull
21- ? : getEnv(username)
22- ? : logAbsentProperty(username)
18+ fun getLocalProperties (): java.util.Properties {
19+ return java.util.Properties ().apply {
20+ val propertiesDir = File (
21+ rootDir.path
22+ .removeSuffix(" /gradle-conventions" )
23+ .removeSuffix(" /gradle-conventions-settings" )
24+ .removeSuffix(" /compiler-plugin" )
25+ .removeSuffix(" /gradle-plugin" )
26+ )
27+ val localFile = File (propertiesDir, " local.properties" )
28+ if (localFile.exists()) {
29+ localFile.inputStream().use { load(it) }
30+ }
31+ }
2332 }
2433
2534 fun getSpacePassword (): String? {
2635 val password = " kotlinx.rpc.team.space.password"
27- return settings.providers.gradleProperty(password).orNull
36+ return getLocalProperties()[password] as String?
37+ ? : settings.providers.gradleProperty(password).orNull
2838 ? : getEnv(password)
2939 ? : logAbsentProperty(password)
3040 }
@@ -39,13 +49,16 @@ pluginManagement {
3949 name = repoName.split(" -" ).joinToString(" " ) { it.replaceFirstChar { c -> c.titlecase() } }
4050 url = uri(" https://packages.jetbrains.team/maven/p/krpc/$repoName " )
4151
42- val spaceUsername = getSpaceUsername()
4352 val spacePassword = getSpacePassword()
4453
45- if (spaceUsername != null && spacePassword != null ) {
46- credentials {
47- username = spaceUsername
48- password = spacePassword
54+ if (spacePassword != null ) {
55+ credentials(HttpHeaderCredentials ::class .java) {
56+ name = " Authorization"
57+ value = " Bearer $spacePassword "
58+ }
59+
60+ authentication {
61+ create<HttpHeaderAuthentication >(" http_auth_header" )
4962 }
5063 } else {
5164 logger.info(" Skipping adding credentials for Space repository '$repoName '" )
@@ -57,8 +70,16 @@ pluginManagement {
5770 fun RepositoryHandler.buildDepsEap () = jbTeamPackages(repoName = " build-deps-eap" )
5871
5972 repositories {
60- buildDeps()
61- buildDepsEap()
73+ val useProxyProperty = getLocalProperties()[" kotlinx.rpc.useProxyRepositories" ] as String?
74+ val useProxy = useProxyProperty == null || useProxyProperty == " true"
75+
76+ if (useProxy) {
77+ buildDeps()
78+ buildDepsEap()
79+ } else {
80+ mavenCentral()
81+ gradlePluginPortal()
82+ }
6283 }
6384}
6485
@@ -73,16 +94,31 @@ gradle.rootProject {
7394 propertyName.replace(" ." , " _" ).uppercase()
7495 )?.ifEmpty { null }
7596
76- fun getSpaceUsername (): String? {
77- val username = " kotlinx.rpc.team.space.username"
78- return settings.providers.gradleProperty(username).orNull
79- ? : getEnv(username)
80- ? : logAbsentProperty(username)
97+ fun getLocalProperties (): java.util.Properties {
98+ return java.util.Properties ().apply {
99+ val propertiesDir = File (
100+ rootDir.path
101+ .removeSuffix(" /gradle-conventions" )
102+ .removeSuffix(" /gradle-conventions-settings" )
103+ .removeSuffix(" /compiler-plugin" )
104+ .removeSuffix(" /gradle-plugin" )
105+ )
106+ val localFile = File (propertiesDir, " local.properties" )
107+ if (localFile.exists()) {
108+ localFile.inputStream().use { load(it) }
109+ }
110+ }
111+ }
112+
113+ fun java.util.Properties.isUsingProxyRepositories (): Boolean {
114+ val useProxyProperty = this [" kotlinx.rpc.useProxyRepositories" ] as String?
115+ return useProxyProperty == null || useProxyProperty == " true"
81116 }
82117
83118 fun getSpacePassword (): String? {
84119 val password = " kotlinx.rpc.team.space.password"
85- return settings.providers.gradleProperty(password).orNull
120+ return getLocalProperties()[password] as String?
121+ ? : settings.providers.gradleProperty(password).orNull
86122 ? : getEnv(password)
87123 ? : logAbsentProperty(password)
88124 }
@@ -95,16 +131,18 @@ gradle.rootProject {
95131 fun RepositoryHandler.jbTeamPackages (repoName : String ) {
96132 maven {
97133 name = repoName.split(" -" ).joinToString(" " ) { it.replaceFirstChar { c -> c.titlecase() } }
98-
99134 url = uri(" https://packages.jetbrains.team/maven/p/krpc/$repoName " )
100135
101- val spaceUsername = getSpaceUsername()
102136 val spacePassword = getSpacePassword()
103137
104- if (spaceUsername != null && spacePassword != null ) {
105- credentials {
106- username = spaceUsername
107- password = spacePassword
138+ if (spacePassword != null ) {
139+ credentials(HttpHeaderCredentials ::class .java) {
140+ name = " Authorization"
141+ value = " Bearer $spacePassword "
142+ }
143+
144+ authentication {
145+ create<HttpHeaderAuthentication >(" http_auth_header" )
108146 }
109147 } else {
110148 logger.info(" Skipping adding credentials for Space repository '$repoName '" )
@@ -116,15 +154,41 @@ gradle.rootProject {
116154 fun RepositoryHandler.buildDepsEap () = jbTeamPackages(repoName = " build-deps-eap" )
117155
118156 allprojects {
157+ val localProps = getLocalProperties()
158+
159+ this .extra[" spacePassword" ] = getSpacePassword()
160+ this .extra[" localProperties" ] = localProps
161+ this .extra[" useProxyRepositories" ] = localProps.isUsingProxyRepositories()
162+
163+ val useProxy = localProps.isUsingProxyRepositories()
164+
119165 buildscript {
120166 repositories {
121- buildDeps()
122- buildDepsEap()
167+ if (useProxy) {
168+ buildDeps()
169+ buildDepsEap()
170+ } else {
171+ mavenCentral()
172+ gradlePluginPortal()
173+ }
123174 }
124175 }
125176 repositories {
126- buildDeps()
127- buildDepsEap()
177+ if (useProxy) {
178+ buildDeps()
179+ buildDepsEap()
180+ } else {
181+ mavenCentral()
182+ gradlePluginPortal()
183+
184+ maven(" https://www.jetbrains.com/intellij-repository/releases" )
185+
186+ maven(" https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies" )
187+ maven(" https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap" )
188+ maven(" https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev" )
189+
190+ maven(" https://maven.pkg.jetbrains.space/public/p/ktor/eap" )
191+ }
128192 }
129193 }
130194}
0 commit comments