in tools/release/adot-operator-images-mirror/ecr_manager.go [55:89]
func (e *ecrManager) buildCache(ctx context.Context, nextToken *string) error {
if nextToken == nil {
log.Println("Loading the list of ECR repositories")
}
resp, err := e.client.DescribeRepositories(ctx, &ecrpublic.DescribeRepositoriesInput{
NextToken: nextToken,
})
if err != nil {
return err
}
if e.repositories == nil {
e.repositories = make(map[string]bool)
}
for _, repo := range resp.Repositories {
e.repositories[*repo.RepositoryName] = true
}
// keep paging as long as there is a token for the next page
if resp.NextToken != nil {
err = e.buildCache(ctx, resp.NextToken)
if err != nil {
return err
}
}
// no next token means we hit the last page
if nextToken == nil {
log.Println("Done loading ECR repositories")
}
return nil
}