code: func makeCacheEntry(data *ecr.AuthorizationData, registry string) (*cacheEntry, error) {
  	decodedToken, err := base64.StdEncoding.DecodeString(aws.StringValue(data.AuthorizationToken))
  	if err != nil {
  		return nil, fmt.Errorf("error decoding ECR authorization token: %v", err)
  	}
  	parts := strings.SplitN(string(decodedToken), ":", 2)
  	if len(parts) < 2 {
  		return nil, errors.New("error getting username and password from authorization token")
  	}
  	creds := credentialprovider.DockerConfigEntry{
  		Username: parts[0],
  		Password: parts[1],
  		Email:    "not@val.id", // ECR doesn't care and Docker is about to obsolete it
  	}
  	if data.ExpiresAt == nil {
  		return nil, errors.New("authorization data expiresAt is nil")
  	}
  	return &cacheEntry{
  		expiresAt:   data.ExpiresAt.Add(-1 * wait.Jitter(30*time.Minute, 0.2)),
  		credentials: creds,
  		registry:    registry,
  	}, nil
  }
docs: // makeCacheEntry decodes the ECR authorization entry and re-packages it into a
  // cacheEntry.