code: func (pt proxyTagService) Get(ctx context.Context, tag string) (distribution.Descriptor, error) {
  	err := pt.authChallenger.tryEstablishChallenges(ctx)
  	if err == nil {
  		desc, err := pt.remoteTags.Get(ctx, tag)
  		if err == nil {
  			err := pt.localTags.Tag(ctx, tag, desc)
  			if err != nil {
  				return distribution.Descriptor{}, err
  			}
  			return desc, nil
  		}
  	}
  
  	desc, err := pt.localTags.Get(ctx, tag)
  	if err != nil {
  		return distribution.Descriptor{}, err
  	}
  	return desc, nil
  }
docs: // Get attempts to get the most recent digest for the tag by checking the remote
  // tag service first and then caching it locally.  If the remote is unavailable
  // the local association is returned