From 5dd456acdefb9fe1ca97d5fd7795e1a8247ab4b8 Mon Sep 17 00:00:00 2001 From: TenSt Date: Wed, 8 Jul 2026 12:38:19 +0200 Subject: [PATCH] HMS-10986: count only latest build on builds count for each version --- pkg/tangy/maven.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/tangy/maven.go b/pkg/tangy/maven.go index ee78bac..1841318 100644 --- a/pkg/tangy/maven.go +++ b/pkg/tangy/maven.go @@ -410,7 +410,8 @@ func (t *tangyImpl) MavenBuildList(ctx context.Context, repositoryHref, groupID, } // MavenRepositoryMetrics returns package and build counts for the latest version of a repository. -// Packages are distinct group_id/artifact_id pairs; builds are .pom artifacts. +// Packages are distinct group_id/artifact_id pairs. Builds are distinct package versions: +// group_id/artifact_id tuples paired with the base version after stripping Maven build suffixes such as .rhlw-00001. func (t *tangyImpl) MavenRepositoryMetrics(ctx context.Context, repositoryHref string) (MavenRepositoryMetrics, error) { if repositoryHref == "" { return MavenRepositoryMetrics{}, nil @@ -443,16 +444,19 @@ func (t *tangyImpl) MavenRepositoryMetrics(ctx context.Context, repositoryHref s return MavenRepositoryMetrics{}, err } - pomFilter := ` AND rp.filename LIKE '%.pom'` artifactFrom := ` FROM maven_mavenartifact rp - ` + innerUnion + pomFilter + ` + innerUnion metricsQuery := ` SELECT (SELECT COUNT(DISTINCT (rp.group_id, rp.artifact_id)) ` + artifactFrom + `) AS package_count, - (SELECT COUNT(*) + (SELECT COUNT(DISTINCT ( + rp.group_id, + rp.artifact_id, + regexp_replace(rp.version, '\.[a-zA-Z]+-\d+$', '') + )) ` + artifactFrom + `) AS build_count` var metrics MavenRepositoryMetrics