@@ -150,6 +150,37 @@ abstract class GMavenService : BuildService<BuildServiceParameters.None> {
150150 fun latestVersionOrNull (groupId : String , artifactId : String ) =
151151 controller.latestVersionOrNull(groupId, artifactId)
152152
153+ /* *
154+ * Gets the latest non-alpha version of the artifact that has been uploaded to GMaven, if any.
155+ *
156+ * ```
157+ * gmaven.latestNonAlphaVersionOrNull("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.latestNonAlphaVersionOrNull("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+
153184 /* *
154185 * Gets the latest version of the artifact that has been uploaded to GMaven, if any.
155186 *
@@ -403,6 +434,11 @@ class GMavenServiceController(
403434 return findFirebaseArtifact(groupId, artifactId)?.latestVersion
404435 }
405436
437+ /* * @see GMavenService.latestNonAlphaVersionOrNull */
438+ fun latestNonAlphaVersionOrNull (groupId : String , artifactId : String ): String? {
439+ return findFirebaseArtifact(groupId, artifactId)?.latestNonAlphaVersion
440+ }
441+
406442 /* * @see GMavenService.hasReleasedArtifact */
407443 fun hasReleasedArtifact (groupId : String , artifactId : String ): Boolean {
408444 return findFirebaseArtifact(groupId, artifactId) != = null
@@ -555,6 +591,7 @@ data class GroupIndexArtifact(
555591 val artifactId : String ,
556592 val versions : List <String >,
557593 val latestVersion : String = versions.last(),
594+ val latestNonAlphaVersion : String? = versions.findLast { !it.contains("alpha") },
558595) {
559596
560597 /* *
0 commit comments