Fix repo tag count when a repo name is a prefix for another repo name(s)

This commit is contained in:
Roman Vynar 2024-05-06 16:47:37 +03:00
parent c7c3a815fb
commit b49076db7c
3 changed files with 8 additions and 4 deletions

View File

@ -1,5 +1,9 @@
## Changelog
## UNRELEASED
* Fix repo tag count when a repo name is a prefix for another repo name(s)
## 0.10.1 (2024-04-19)
* Rename cmd flag `-purge-from-repos` to `-purge-include-repos` to purge tags only for the specified repositories.

View File

@ -272,8 +272,8 @@ func (c *Client) GetImageCreated(imageRef string) time.Time {
return cfg.Created.Time
}
// TagCounts return map with tag counts according to the provided list of repos/sub-repos etc.
func (c *Client) TagCounts(repoPath string, repos []string) map[string]int {
// SubRepoTagCounts return map with tag counts according to the provided list of repos/sub-repos etc.
func (c *Client) SubRepoTagCounts(repoPath string, repos []string) map[string]int {
counts := map[string]int{}
for _, r := range repos {
subRepo := r
@ -281,7 +281,7 @@ func (c *Client) TagCounts(repoPath string, repos []string) map[string]int {
subRepo = repoPath + "/" + r
}
for k, v := range c.tagCounts {
if strings.HasPrefix(k, subRepo) {
if k == subRepo || strings.HasPrefix(k, subRepo+"/") {
counts[subRepo] = counts[subRepo] + v
}
}

2
web.go
View File

@ -76,7 +76,7 @@ func (a *apiClient) viewCatalog(c echo.Context) error {
}
data.Set("repos", repos)
data.Set("isCatalogReady", a.client.IsCatalogReady())
data.Set("tagCounts", a.client.TagCounts(repoPath, repos))
data.Set("tagCounts", a.client.SubRepoTagCounts(repoPath, repos))
data.Set("tags", tags)
if repoPath != "" && (len(repos) > 0 || len(tags) > 0) {
// Do not show events in the root of catalog.