@@ -26,6 +26,8 @@ final case class RepoParams(
26
26
shouldSign : Boolean ,
27
27
shouldAuthenticate : Boolean
28
28
) {
29
+ import RepoParams .*
30
+
29
31
def withAuth (auth : Authentication ): RepoParams =
30
32
copy(
31
33
repo = repo.withAuthentication(auth),
@@ -42,14 +44,26 @@ final case class RepoParams(
42
44
)
43
45
def withAuth (authOpt : Option [Authentication ]): RepoParams = authOpt.fold(this )(withAuth)
44
46
45
- lazy val isLegacySonatype : Boolean =
47
+ lazy val isSonatype : Boolean =
46
48
Option (new URI (repo.snapshotRepo.root))
47
49
.filter(_.getScheme == " https" )
48
50
.map(_.getHost)
49
- .exists(host => host == " oss.sonatype.org " || host.endsWith( " .oss.sonatype.org " ) )
51
+ .exists(sonatypeHosts.contains )
50
52
}
51
53
52
54
object RepoParams {
55
+ private val sonatypeOssrhStagingApiBase = " https://ossrh-staging-api.central.sonatype.com"
56
+ private val sonatypeSnapshotsBase = " https://central.sonatype.com/repository/maven-snapshots/"
57
+ private val sonatypeLegacyBase = " https://oss.sonatype.org"
58
+ private val sonatypeS01LegacyBase = " https://s01.oss.sonatype.org"
59
+ private def sonatypeHosts : Seq [String ] =
60
+ Seq (
61
+ sonatypeLegacyBase,
62
+ sonatypeSnapshotsBase,
63
+ sonatypeS01LegacyBase,
64
+ sonatypeOssrhStagingApiBase
65
+ ).map(new URI (_).getHost)
66
+
53
67
def apply (
54
68
repo : String ,
55
69
vcsUrlOpt : Option [String ],
@@ -67,10 +81,9 @@ object RepoParams {
67
81
case " ivy2-local" =>
68
82
RepoParams .ivy2Local(ivy2HomeOpt)
69
83
case " sonatype" | " central" | " maven-central" | " mvn-central" =>
70
- val ossrhStagingApiBase = " https://ossrh-staging-api.central.sonatype.com"
71
- logger.message(s " Using Portal OSSRH Staging API: $ossrhStagingApiBase" )
84
+ logger.message(s " Using Portal OSSRH Staging API: $sonatypeOssrhStagingApiBase" )
72
85
RepoParams .centralRepo(
73
- base = ossrhStagingApiBase ,
86
+ base = sonatypeOssrhStagingApiBase ,
74
87
useLegacySnapshots = false ,
75
88
connectionTimeoutRetries = connectionTimeoutRetries,
76
89
connectionTimeoutSeconds = connectionTimeoutSeconds,
@@ -80,11 +93,10 @@ object RepoParams {
80
93
logger = logger
81
94
)
82
95
case " sonatype-legacy" | " central-legacy" | " maven-central-legacy" | " mvn-central-legacy" =>
83
- val legacyBase = " https://oss.sonatype.org"
84
- logger.message(s " $warnPrefix $legacyBase is EOL since 2025-06-30. " )
85
- logger.message(s " $warnPrefix $legacyBase publishing is expected to fail. " )
96
+ logger.message(s " $warnPrefix $sonatypeLegacyBase is EOL since 2025-06-30. " )
97
+ logger.message(s " $warnPrefix $sonatypeLegacyBase publishing is expected to fail. " )
86
98
RepoParams .centralRepo(
87
- base = legacyBase ,
99
+ base = sonatypeLegacyBase ,
88
100
useLegacySnapshots = true ,
89
101
connectionTimeoutRetries = connectionTimeoutRetries,
90
102
connectionTimeoutSeconds = connectionTimeoutSeconds,
@@ -94,11 +106,10 @@ object RepoParams {
94
106
logger = logger
95
107
)
96
108
case " sonatype-s01" | " central-s01" | " maven-central-s01" | " mvn-central-s01" =>
97
- val s01SonatypeLegacyBase = " https://s01.oss.sonatype.org"
98
- logger.message(s " $warnPrefix $s01SonatypeLegacyBase is EOL since 2025-06-30. " )
109
+ logger.message(s " $warnPrefix $sonatypeS01LegacyBase is EOL since 2025-06-30. " )
99
110
logger.message(s " $warnPrefix it's expected publishing will fail. " )
100
111
RepoParams .centralRepo(
101
- base = s01SonatypeLegacyBase ,
112
+ base = sonatypeS01LegacyBase ,
102
113
useLegacySnapshots = true ,
103
114
connectionTimeoutRetries = connectionTimeoutRetries,
104
115
connectionTimeoutSeconds = connectionTimeoutSeconds,
0 commit comments