@@ -150,6 +150,37 @@ abstract class GMavenService : BuildService<BuildServiceParameters.None> {
150
150
fun latestVersionOrNull (groupId : String , artifactId : String ) =
151
151
controller.latestVersionOrNull(groupId, artifactId)
152
152
153
+ /* *
154
+ * Gets the latest non-alpha version of the artifact that has been uploaded to GMaven, if any.
155
+ *
156
+ * ```
157
+ * gmaven.latestVersionOrNull("com.google.firebase", "firebase-components") // "18.0.1"
158
+ * ```
159
+ *
160
+ * @param groupId The group to search under.
161
+ * @param artifactId The artifact to search for.
162
+ * @return The latest released version as a string, or null if the artifact couldn't be found.
163
+ * @see latestVersion
164
+ */
165
+ fun latestNonAlphaVersionOrNull (groupId : String , artifactId : String ) =
166
+ controller.latestNonAlphaVersionOrNull(groupId, artifactId)
167
+
168
+ /* *
169
+ * Gets the latest non-alpha version of the artifact that has been uploaded to GMaven, if any.
170
+ *
171
+ * ```
172
+ * gmaven.latestVersionOrNull("com.google.firebase", "firebase-components") // "18.0.1"
173
+ * ```
174
+ *
175
+ * @param fullArtifactName The artifact to search for, represented as "groupId:artifactId".
176
+ * @return The latest released version as a string, or null if the artifact couldn't be found.
177
+ * @see latestVersion
178
+ */
179
+ fun latestNonAlphaVersionOrNull (fullArtifactName : String ): String? {
180
+ val (groupId, artifactId) = fullArtifactName.split(" :" )
181
+ return latestNonAlphaVersionOrNull(groupId, artifactId)
182
+ }
183
+
153
184
/* *
154
185
* Gets the latest version of the artifact that has been uploaded to GMaven, if any.
155
186
*
@@ -184,6 +215,24 @@ abstract class GMavenService : BuildService<BuildServiceParameters.None> {
184
215
" Failed to get the latest version from gmaven for \' $artifactId \' . Has it been published?"
185
216
)
186
217
218
+ /* *
219
+ * Gets the latest non-alpha version of the artifact that has been uploaded to GMaven.
220
+ *
221
+ * ```
222
+ * gmaven.latestVersion("com.google.firebase", "firebase-components") // "18.0.1"
223
+ * ```
224
+ *
225
+ * @param groupId The group to search under.
226
+ * @param artifactId The artifact to search for.
227
+ * @return The latest released version as a string.
228
+ * @see latestNonAlphaVersionOrNull
229
+ */
230
+ fun latestNonAlphaVersion (groupId : String , artifactId : String ) =
231
+ latestVersionOrNull(groupId, artifactId)
232
+ ? : throw RuntimeException (
233
+ " Failed to get the latest version from gmaven for \' $artifactId \' . Has it been published?"
234
+ )
235
+
187
236
/* *
188
237
* Checks if an artifact has been published to GMaven.
189
238
*
@@ -403,6 +452,11 @@ class GMavenServiceController(
403
452
return findFirebaseArtifact(groupId, artifactId)?.latestVersion
404
453
}
405
454
455
+ /* * @see GMavenService.latestVersionOrNull */
456
+ fun latestNonAlphaVersionOrNull (groupId : String , artifactId : String ): String? {
457
+ return findFirebaseArtifact(groupId, artifactId)?.latestNonAlphaVersion
458
+ }
459
+
406
460
/* * @see GMavenService.hasReleasedArtifact */
407
461
fun hasReleasedArtifact (groupId : String , artifactId : String ): Boolean {
408
462
return findFirebaseArtifact(groupId, artifactId) != = null
@@ -555,6 +609,7 @@ data class GroupIndexArtifact(
555
609
val artifactId : String ,
556
610
val versions : List <String >,
557
611
val latestVersion : String = versions.last(),
612
+ val latestNonAlphaVersion : String = versions.last { !it.contains("alpha") }
558
613
) {
559
614
560
615
/* *
0 commit comments