in cmd/common/image_functions.go [99:126]
func CollectTagFilters(ctx context.Context, rawFilters []string, client acrapi.BaseClientAPI, regexMatchTimeout int64, repoPageSize int32) (map[string]string, error) {
allRepoNames, err := GetAllRepositoryNames(ctx, client, repoPageSize)
if err != nil {
return nil, err
}
tagFilters := map[string]string{}
for _, filter := range rawFilters {
repoRegex, tagRegex, err := GetRepositoryAndTagRegex(filter)
if err != nil {
return nil, err
}
repoNames, err := GetMatchingRepos(allRepoNames, "^"+repoRegex+"$", regexMatchTimeout)
if err != nil {
return nil, err
}
for _, repoName := range repoNames {
if _, ok := tagFilters[repoName]; ok {
// To only iterate through a repo once a big regex filter is made of all the filters of a particular repo.
tagFilters[repoName] = tagFilters[repoName] + "|" + tagRegex
} else {
tagFilters[repoName] = tagRegex
}
}
}
return tagFilters, nil
}