func()

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
}